1. 程式人生 > >介面 interface 介面和抽象類的比較

介面 interface 介面和抽象類的比較

  接口裡不能包含普通方法,藉口裡所有方法都是抽象方法。

  [修飾符] interface 介面名 extends  父介面1,父介面2...{

   零個到多個常量定義

  零個到多個抽象方法定義

}

  1.修飾符可以是public 或者省略,如果省略了public 訪問控制符,則預設採用包許可權訪問,即只有在相同包結構下才可以訪問該介面

  2。介面名應該與類名採用相同的命名規則

 3.一個介面可以有多個直接父介面,但介面只能繼承介面,不能繼承類

定義介面成員時,可以省略訪問控制修飾符,如果指定訪問控制修飾符,則只能是public。

接口裡定義的常量屬性,與介面相關,只能是常量,系統會自動為這些屬性新增static和final修飾。

    即在介面中定義屬性時,不管是否使用public static final,接口裡的屬性總是使用這三個來修飾(系統自動新增)。

由於在接口裡沒有構造器和初始化塊,接口裡定義的屬性只能在定義時指定預設值。

接口裡定義的方法:只能是抽象方法,系統會自動新增abstract修飾符,不可以使用static修飾接口裡定義的方法。方法不管是否定義public abstract修飾符,系統總會自動新增。

介面和抽象類的比較:

 1.接口裡只能包含抽象方法,不包含已經提供實現的方法,抽象類則可以包含抽象方法

 2.接口裡不能定義靜態方法,抽象類可以定義靜態方法

 3.接口裡只能定義靜態常量屬性,不能定義普通屬性,抽象類裡既可以定義普通屬性,也可以定義靜態常量屬性

 4.介面不包含構造器,抽象類裡可以包含構造器,抽象類的構造器並不是用於建立物件,而是讓子類呼叫來完成屬於抽象類的初始化操作

  5.接口裡不能含初始化塊,抽象類則可以包含初始化塊

  6.一個類最多隻能有一個直接父類,包括抽象類,但一個類可以直接實現多個介面

相關推薦

介面 interface 介面抽象比較

  接口裡不能包含普通方法,藉口裡所有方法都是抽象方法。   [修飾符] interface 介面名 extends  父介面1,父介面2...{    零個到多個常量定義   零個到多個抽象方法定義

介面抽象什麼時候使用比較合適?

理解抽象類  abstract class和interface在Java語言中都是用來進行抽象類(本文 中的抽象類並非從abstract class翻譯而來,它表示的是一個抽象體,而abstract class為Java語言中用於定義抽象類的一種方法, 請讀者注意區分)定義

C#介面抽象:Interface、abstract

一、介面 介面是C#中很常見的工具,概念什麼的就不說了,這裡講幾個值得注意的小地方: 1、介面內部只能有函式、屬性和事件的宣告: <!--<br /> <br /> Code highlighting produced by Actip

java自動拆裝箱,介面抽象

1.Java支援的資料型別有哪些?什麼是自動拆裝箱? Java語言支援的8中基本資料型別是: byte short int long float double boolean char 自動裝箱是Java編譯器在基本資料型別和對應的物件包裝型別之間做的一個轉化。比如:把int轉化成Integ

python學習筆記(31) 介面抽象

from abc import abstractmethod.ABCmeta class Payment(mataclass = ABCmeta):  #元類 預設的元類 type   @abstractmethod   def pay(self,money):pass 介面類或者抽象類都是為了規範子

JAVA:介面抽象的區別

1.從設計層面來說,抽象是對類的抽象,是一種模板設計 ,介面是行為的抽象,是一種行為的規範 介面 interface 抽象類 介面中所有方法都是抽象的 抽象類中可以有抽象方法和普通方法 一

介面抽象得區別

首先是基本定義 介面: 使用介面(interface),可以指定某個類必須實現哪些方法,但不需要定義這些方法的具體內容。 介面是通過 interface 關鍵字來定義的,就像定義一個標準的類一樣,但其中定義所有的方法都是空的。 介面中定義的所有方法都必須是公有,這

Java特性-介面抽象區別

抽象類是自底向上抽象出來的,介面則是自頂向下設計出來的。 抽象類是對事物本身的抽象,比如貓類,狗類就可以抽象為動物類。 介面是對行為的抽象,比如男人要吃飯,女人也要吃飯,吃飯就可以抽象為介面。 抽象類表示的是這個物件是什麼,介面表示的是這個物件能幹什麼。 所以

java介面抽象的區別

全域性變數的區別 介面中所有的全域性變數預設為 public static final,處於方法區的常量池中,且是靜態域中的成員 抽象類的全域性變數無硬性約束 方法的區別 介面 介面

Java 介面抽象可以被new麼?——順便總結內部類

轉載:https://blog.csdn.net/hackersaillen/article/details/47281549 背景:     最近有同事跟我說了他面試時遇到的問題,考官問:“介面和抽象類可以被new嘛?”。這可能不是考官的原話,但是據他表達考官大概就是這

python筆記(介面抽象)

一、介面類:(python原生不支援,預設多繼承,所有的方法都必須不能實現) from abc import abstractmethod,ABCMeta class Payment(metaclass=ABCMeta): #元類 預設的元類 type @abstract

介面抽象是否繼承了Object

我們先看一下Java的幫助文件對於Object的描述: Class Object is the root of the class hierarchy. Every class has Object as a superclass. All objects, including arrays, implem

c#介面抽象的區別

   大家都容易把這兩者搞混,我也一樣,在聽李建忠老師的設計模式時,他也老把抽象類說成介面,弄的我就更糊塗了,所以找了些網上的資料.       一、抽象類:     

介面抽象的使用上的區別選擇

    介面與抽象類的使用上的區別和選擇:       首先,對於抽象類它的作用主要用於繼承和重寫,裡面可以有普通方法,但在設計上面,通常把其派生類的共有屬性和方法抽象出來,其中所有派生類中不變的方法,在抽象類中用普通方法寫出來,而所有派生類中變化的

介面抽象的相同不同之處

共性:不斷的抽取,抽取出抽象的概念    不能建立物件(不能例項化)   區別1:與類的關係        類與介面是實現關係,一個類可以實現多個介面        類與抽象類是繼承關係,Java中的繼承是單一繼承,一個類只能有一個父類,Java中的繼承是多層繼承   區別2:成員     

如何在Java中選擇介面抽象

什麼是抽象類? 摘要意味著某些東西不是完全具體的 - 它只是一個想法或某事的要點。因此,當我們討論抽象類時,它意味著一個本身沒有具體實現的類。這只是為其他具體類建立的結構或指南。我們可以說抽象類是具體類的靈魂。這就是我們“擴充套件”抽象類的原因。抽象類應該只有那些屬性和方法,沒有它們就不能存在具體的類。

C#中的介面抽象學習

今天學習了介面和抽象類,但並沒有很好的進行整理,所以現在寫的時候,腦子裡多少有點亂亂的,先從介面開始吧。 interface 介面,規定了所有派生類的需要遵循的標準,介面定義了需要做些什麼,但是沒有具體的做法,做法的實現由派生類來做。 介面的定義使用關鍵字Interface,由於需要派生類繼承,所以

介面 抽象

抽象類有普通方法和抽象方法,普通方法可以實現方法細節,在java中叫做可以有方法體,抽象方法卻不能有方法體。而抽象類不能例項化,除此之外跟其他類沒區別。 而介面則其內部的方法全部是抽象方法, 在java中,類只能繼承一個類,後者不管是抽象類還是普通類都可以。但是可以接多個介面。 抽象類是物的抽象,介面是

Java介面抽象的深入理解

  對於面向物件程式設計來說,抽象是它的一大特徵之一。在Java中,可以通過兩種形式來體現OOP的抽象:介面和抽象類。這兩者有太多相似的地方,又有太多不同的地方。很多人在初學的時候會以為它們可以隨意互換使用,但是實際則不然。今天我們就一起來學習一下Java中的介面和抽象類。下面是本文的目錄

JAVA面試題:介面抽象的區別聯絡

一、介面的概念: 介面(Interface),在JAVA程式語言中是一個抽象型別,是抽象方法的集合。介面通常以interface來宣告。一個類通過繼承介面的方式,從而來繼承介面的抽象方法。 如果一個類只由抽象方法和全域性常量組成,那麼這種情況下不會將其定義為一個抽象類。只