繼承:就是子類繼承父類的屬性和行為,使得子類物件具有與父類相同的屬性、相同的行為。子類可以直接 訪問父類中的非私有的屬性和行為。
通過 extends 關鍵字,可以宣告乙個子類繼承另外乙個父類,定義格式如下:
**如下:
class 父類
class 子類 extends 父類
成員變數同名時:
小貼士:fu 類中的成員變數是非私有的,子類中可以直接訪問。若fu 類中的成員變數私有了,子類是不能 直接訪問的。通常編碼時,我們遵循封裝的原則,使用private修飾成員變數,那麼如何訪問父類的私有成員 變數呢?對!可以在父類中提供公共的get***方法和set***方法。
注意事項
1. 子類方法覆蓋父類方法,必須要保證許可權大於等於父類許可權。 2. 子類方法覆蓋父類方法,返回值型別、函式名和引數列表都要一模一樣。
抽象類
使用 abstract 關鍵字修飾方法,該方法就成了抽象方法,抽象方法只包含乙個方法名,而沒有方法體。
格式:
如果乙個類包含抽象方法,那麼該類必須是抽象類。
抽象的使用
繼承抽象類的子類必須重寫父類所有的抽象方法。否則,該子類也必須宣告為抽象類。最終,必須有子類實現該父 類的抽象方法,否則,從最初的父類到最終的子類都不能建立物件,失去意義。
注意事項:
關於抽象類的使用,以下為語法上要注意的細節,雖然條目較多,但若理解了抽象的本質,無需死記硬背。
1. 抽象類不能建立物件,如果建立,編譯無法通過而報錯。只能建立其非抽象子類的物件。
理解:假設建立了抽象類的物件,呼叫抽象的方法,而抽象方法沒有具體的方法體,沒有意義。
2.抽象類中,可以有構造方法,是供子類建立物件時,初始化父類成員使用的。
理解:子類的構造方法中,有預設的super(),需要訪問父類構造方法。
3.抽象類中,不一定包含抽象方法,但是有抽象方法的類必定是抽象類。
理解:未包含抽象方法的抽象類,目的就是不想讓呼叫者建立該類物件,通常用於某些特殊的類結構設 計。
4. 抽象類的子類,必須重寫抽象父類中所有的抽象方法,否則,編譯無法通過而報錯。除非該子類也是抽象 類。
理解:假設不重寫所有抽象方法,則類中可能包含抽象方法。那麼建立物件後,呼叫抽象的方法,沒有 意義。
繼承 super this 抽象類
頂層父類object類,所有的類預設繼承object 定義 就是子類繼承父類的屬性和行為,使得子類具有與父類相同的屬性 相同的行為,子類可以直接訪問父類中的非私有的屬性和行為 子類是基於父類的功能和屬性進一步 繼承優點 提高 的復用性 類與類之間產生了關係,是多型的前提 格式 繼承後的特點 成員變數...
09 繼承 super this 抽象類
繼承 就是子類繼承父類的屬性和行為,使得子類物件具有與父類相同的屬性 相同的行為。子類可以直接 訪問父類中的非私有的屬性和行為。在父子類的繼承關係當中,如果成員變數重名,則建立子類物件時,訪問有兩種方式 直接通過子類物件訪問成員變數 等號左邊是誰,就優先用誰,沒有則向上找。間接通過成員方法訪問成員變...
day09 繼承 super this 抽象類
子父類 現了同名的成員變數時,在子類中需要訪問父類中非私有成員變數時,需要使用 super 關鍵字,修飾父類成員變數,類似於之前學過的 this class father class sonextends father class extendsdemo03 演示結果 fu num 6zi num ...