(學習筆記)抽象類和介面

2021-08-07 19:21:34 字數 1561 閱讀 9824

最近準備校招,所以複習的時候想來記錄一下學習的內容。

首先聊聊介面類吧:

(1).抽象類的含義

包含抽象方法的類叫做抽象類。如果乙個類包括乙個或者多個抽象方法,該類必須被限定為抽象方法。

(2)抽象類的知識點

1.含有abstract修飾符的class即為抽象類,abstract類不能建立例項物件。

2. 含有abstract方法的類必須定義為 abstract class,而abstract class中的方法不必全是抽象的。

3.abstract class類中定義抽象方法必須在具體子類中實現,所以,不能有抽象的構造方法或者抽象靜態方法。

4.如果子類沒有實現抽象父類中的所有抽象方法,那麼子類也必須定位為abstract型別。

2。介面(inte***ce)

(1)介面的含義

可以說是抽象類的一種特例,介面中的所有方法都必須是抽象的。能有的內容是:static final 的靜態成員變數,public abstract 的抽象方法(可以使用abstract關鍵字也可以不使用)

(2)介面的知識點

1.介面中的域隱式地是static和final的

2.介面可以巢狀多重繼承的途徑

3.介面是實現多重繼承的途徑

4.介面中的方法定義預設為public abstract型別,介面中的成員變數型別預設為public static final。

5.介面不能有構造器

6.介面中不能有main()的方法。

3.語法上的區別

1.普通成員變數:抽象類中可以有普通成員變數、介面中沒有普通成員變數(static final 變數)

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

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

public static final型別。

4.靜態方法:抽象類中可以包含靜態方法,但不能是抽線靜態方法,介面中不能包含靜態方法。

5.構造方法(靜態方法)抽線類可以有構造方法,介面中不能有構造方法

6方法訪問許可權:抽像類中的抽線方法的訪問型別可以是public 、protected和預設型別,但介面中的抽象方法只能是public型別的,並且預設是public static型別。

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

8.初始化過程:當乙個類在初始化化時,要求其父類全部實現初始化了,但是乙個介面在初始化時,並不要求其父類介面全部實現初始化嗎,只有在真正使用父類的時候(

如引用介面中定義的常量),才會初始化。

4.應用上的區別:

介面上更多的是在系統架構上設計方法發揮作用。主要作用在定義模組之間的通訊契約。

而抽象類在**實現上發揮作用,可以實現**的重用。

5.使用介面的原因:

1)為了能夠向上轉型為多個基型別

2)與使用抽象基類相同相同,防止客戶端程式員建立該類的物件,並確保這僅僅是建立乙個介面。

抽象類是為了**復用,介面是為了多型性。

抽象類和介面筆記

定義 現實生活中很多具有相同特徵的事物歸為乙個抽象類。注意 1.抽象方法只能存在於抽象類中。2.抽象方法不能是private,因為抽象方法沒有具體的實現,需要在子類中繼承並重寫來具體實現 3.第乙個非抽象子類必須實現其父類所有的抽象方法。4.子類的抽象方法不能於父類的抽象方法同名。5.abstrac...

學習筆記 抽象類與介面

第一節 抽象類 1.我們為什麼要使用抽象類 有些類建立物件不具體。需要把這個定義為抽象類 1.animal animal new animal 2.pet pet new pet 使用abstract修飾類變成抽象類 不能例項化,只能被繼承抽象類的構造方法不能直接使用,只能被子類呼叫。2.abstr...

PHP 抽象類和介面 筆記

抽象類的目的 抽象類無法被new例項化,作用相當於乙個模板,就是為了給子類繼承,交由子類完成規定的功能 抽象方法 抽象方法沒有方法體,它的實現必須由子類完成,不全部實現則報錯 關鍵字 abstract 注意 1.在抽象類中定義抽象方法要加修飾符abstract,否者將不是抽象方法,是什麼方法由該方法...