JAVA基礎篇 介面和抽象類有什麼區別

2021-08-16 22:41:12 字數 655 閱讀 8938

介面和抽象類有什麼區別

你選擇使用介面和抽象類的依據是什麼?

介面和抽象類的概念不一樣。介面是對動作的抽象,抽象類是對根源的抽象。

抽象類表示的是,這個物件是什麼。介面表示的是,這個物件能做什麼。比如,男人,女人,這兩個類(如果是類的話……),他們的抽象類是人。說明,他們都是人。

人可以吃東西,狗也可以吃東西,你可以把「吃東西」定義成乙個介面,然後讓這些類去實現它.

所以,在高階語言上,乙個類只能繼承乙個類(抽象類)(正如人不可能同時是生物和非生物),但是可以實現多個介面(吃飯介面、走路介面)。

第一點. 介面是抽象類的變體,介面中所有的方法都是抽象的。而抽象類是宣告方法的存在而不去實現它的類。

第二點. 介面可以多繼承,抽象類不行

第三點. 介面定義方法,不能實現,而抽象類可以實現部分方法。

第四點. 介面中基本資料型別為static 而抽類象不是的。

當你關注乙個事物的本質的時候,用抽象類;當你關注乙個操作的時候,用介面。

抽象類的功能要遠超過介面,但是,定義抽象類的代價高。因為高階語言來說(從實際設計上來說也是)每個類只能繼承乙個類。在這個類中,你必須繼承或編寫出其所有子類的

所有共性。雖然介面在功能上會弱化許多,但是它只是針對乙個動作的描述。而且你可以在乙個類中同時實現多個介面。在設計階段會降低難度的。

java基礎 抽象類和介面

用abstract來修飾的類就稱為抽象類,用abstract來修飾的方法成為抽象方法,子類繼承抽象類的時候必須實現父類的抽象方法,抽象類可以沒有抽象方法,但是如果抽象類沒有抽象方法,或者沒有其他類繼承於它,那麼抽象類就失去了意義 當具體實現需要子類來完成的時候,就可以用抽象類。1 抽象方法必須是pu...

Java基礎篇 03多型 抽象類 介面

事務的多種形態 前提 1 有繼承關係,2 有方法重寫,3 要有父類引用指向子類物件,比如 animal a new cat a.eat 成員變數 編譯看左邊 父類 執行看左邊 父類 成員方法 編譯看左邊 父類 執行看右邊 子類 向上轉型與向下轉型 父類引用指向子類物件就是向上轉型。對態好處 1 提高...

Java語言基礎 抽象類和介面

1.乙個類中的方法如果只有宣告沒有實現,則稱為抽象方法,必須用abstract修飾之 乙個有抽象方法的類稱為抽象類,也必須用abstract修飾之,但抽象類可以沒有抽象方法 抽象類不能被建立 抽象類 abstract class a 沒有抽象方法的抽象類 abstract class b publi...