最近準備校招,所以複習的時候想來記錄一下學習的內容。
首先聊聊介面類吧:
(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,否者將不是抽象方法,是什麼方法由該方法...