抽象類和介面

2021-10-14 05:30:35 字數 1285 閱讀 3703

抽象類和介面

抽象類:含有抽象方法的類,父類設計得非常抽象,以至於它都沒有任何具體的例項。——在類頭使用abstract修飾符表示。

通俗化:類和類之間有著共同的特徵,把這些共同的特徵提取到一起就是抽象類。

按我的理解,就好像是html5中的精靈,乙個包裝好的,但沒有靈魂的軀殼。

抽象方法:實現取決於幾何物件的具體型別。——在方法頭中使用abstract修飾符表示

抽象方法只有定義沒有實現,實現由子類提供。

兩者的要點

1.抽象類不能使用new 操作符建立它的例項

2.抽象類的構造方法定義為protected,因為只被子類使用

3.抽象類建立乙個具體子類的例項,它的父類構造方法被呼叫以初始化父類中定義的資料域

4.乙個類繼承於乙個抽象類,則子類必須實現父類的抽象方法

5.在uml圖形記號中,抽象類和抽象方法的名字用斜體表示

介面:為了定義多個類(包括非相關的類)的共同行為。

介面中可以含有變數和方法。介面中的變數會被隱式地指定為public static final變數,而方法會被隱式地指定為public abstract方法

介面的要點

1.介面不能用於例項化物件。

2.介面沒有構造方法。

3.介面中所有的方法必須是抽象方法。

4.介面不能包含成員變數,除了 static 和 final 變數。

5.介面不是被類繼承了,而是要被類實現。

6.介面支援多繼承。

抽象類和介面的區別:

1.抽象類可以有構造方法,介面中不能有構造方法

2.抽象類中可以有普通成員變數,介面中沒有普通成員變數

3.抽象類中可以包含非抽象的普通方法,介面中的所有方法必須都是抽象的,不能有非抽象的普通方法

4. 抽象類中的抽象方法的訪問型別可以是public,protected,但介面中的抽象方法只能是public型別的,並且預設即為public abstract型別。

5. 抽象類中可以包含靜態方法,介面中不能包含靜態方法

6. 抽象類和介面中都可以包含靜態成員變數,抽象類中的靜態成員變數的訪問型別可以任意,但介面中定義的變數只能是public static final型別,並且預設即為public static final型別。

7. 乙個類可以實現多個介面,但只能繼承乙個抽象類。

介面和抽象類

介面和抽象類 今天自學了一下介面,從第一次接觸介面又進一步理解介面的原理。想到介面或許我們更多的是想到和類的對比,而類中抽象類和介面又更為相似。現在我講下我對介面和抽象類的理解。如果單從具體 來看,對這兩個概念很容易模糊,甚至覺得介面就是多餘的,因為單從具體功能來看,除多重繼承外 c 抽象類似乎完全...

抽象類和介面

抽象類 1.是一種特殊的類,除了不能被例項化外,具有類得其他特性.2.抽象類的方法可以不宣告為abstract,此時可以實現方法提 如果宣告為abstract,則不可以實現方法體,只能宣告,如 public abstract int remove int i,int j 此時類必須宣告為抽象 3.乙...

抽象類和介面

1.抽象類 含有abstract修飾符的類即為抽象類。可用於實現 重用。抽象類與普通類的唯一區別 不能建立例項物件 允許有抽象方法,但不必須是抽象的。抽象類中定義的抽象方法必須在具體子類中實現,所以不能有抽象構造方法或抽象靜態方法 如果沒有全部實現抽象父類的抽象方法,子類也要定義為抽象型別。2.介面...