Java抽象類與介面

2021-07-06 10:54:50 字數 857 閱讀 3248

一.概念:

在物件導向的概念中,我們知道所有的物件都是通過類來描繪的,但是反過來卻不是這樣。

並不是所有的類都是用來描繪物件的,如果乙個類中沒有包含足夠的資訊來描繪乙個具體的物件,這樣的類就是抽象類。

比如:如果我們進行乙個圖形編輯軟體的開發,就會發現問題領域存在著圓、三角形這樣一些具體概念。

它們是不同的,但是它們又都屬於形狀這樣乙個概念,形狀這個概念在問題領域是不存在的,它就是乙個抽象概念。

正是因為抽象的概念在問題領域沒有對應的具體概念,所以用以表徵抽象概念的抽象類是不能夠例項化的。

二.語法:

抽象類中可以有抽象方法,也可以有普通方法,抽象方法只可以被宣告,不能被例項化(就是不能有方法體),

必須由繼承該抽象類的普通類來例項化。

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

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

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

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

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

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

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

is-a 是乙個,繼承關係 繼承的概念

has-a 有乙個,從屬關係  屬於多型的概念

is-like-a 像乙個,可能指多繼承關係,或繼承樹上的兄弟關係  屬於多型的概念

JAVA抽象類與介面

抽象方法 使用abstract關鍵字修飾的方法,沒有方法體,抽象方法只能使用public 或者protected修飾。public abstract void fun 抽象類 使用abstract關鍵字修飾的類 包含抽象方法的類是抽象類 抽象類可以不包含抽象方法 抽象類只能被繼承,不能自己建立例項 ...

Java 抽象類 與 介面

如果乙個類含有抽象方法,則稱這個類是抽象類,抽象類必須使用abstract 關鍵字修飾。因為抽象類中含有抽象方法,所以不能用抽象類建立物件。抽象方法 只有宣告,沒有實現。如果乙個類繼承了乙個抽象類,他必須實現這個抽象類的全部抽象方法,否則,他依然是個抽象類。如下 private abstract c...

Java抽象類與介面

什麼是抽象類?有抽象方法的類。抽象方法 只有宣告,沒有方法體。強制繼承,必須實現裡面方法 包含抽象方法的類稱為抽象類,但並不意味著抽象類中只能有抽象方法,它和普通類一樣,同樣可以擁有成員變數和普通的成員方法。注意,抽象類和普通類的主要有三點區別 1 抽象方法必須為public或者protected ...