繼承 super this 抽象類

2021-08-29 01:13:06 字數 2296 閱讀 6348

頂層父類object類,所有的類預設繼承object

定義:

就是子類繼承父類的屬性和行為,使得子類具有與父類相同的屬性、相同的行為,子類可以直接訪問父類中的非私有的屬性和行為

子類是基於父類的功能和屬性進一步

繼承優點:

提高**的復用性

類與類之間產生了關係,是多型的前提

格式:

繼承後的特點

成員變數、屬性

成員變數不重名(子父類不重名)

子類父類中出現不重名的成員變數,訪問沒有影響

子類父類中出現重名的成員變數,需要用super、this區分

super修飾父類成員變數,this修飾當前

成員方法

子類父類中出現不重名的成員方法,呼叫沒有影響

子類父類中出現重名的成員方法,叫方法重寫

方法重寫:

子類中出現與父類一模一樣的方法時(返回值型別,方法名和引數列表都相同)

會出現覆蓋效果,也稱為重寫或者複寫

重寫的特點:

宣告不變,重新實現(方法體中的邏輯重新寫)

方法過載與方法重寫:

過載:同類同名不同參

發生在同乙個類中,方法名相同、引數列表不相同和返回值沒有關係

重寫:在子類中和父類相同宣告的方法

發生在子父類中,必須有繼承關係;返回值相同、方法名相同、引數列表相同

子父類中的方法一模一樣

構造方法:

在繼承方法中的特點:

構造方法不繼承;構造方法的名字與類名是一致的,所有子類無法繼承父類的構造方法

構造物件時父類例項化優先初始化;構造方法的作用是初始化成員變數的, 在建立子類物件的時候會先初始化父類的成員表量, 後初始化子類的成員變數. 在**中的表現是當執行子類構造方法後, 子類構造方法一定會首先呼叫父類構造方法;在子類的構造方法中預設有乙個super() ,表示呼叫父類的構造方法,父類成員變數初始化後,才可以給子類使用

super和this的含義

super :代表父類成員的儲存空間標識

this :代表子類成員的儲存空間標識

注意

super 和 this 都在堆中同乙個物件空間中.也就意味著, 首位址是一樣得.

super和this的用法

繼承的特點

只支援單繼承,不支援多繼承

支援多層繼承(繼承體系)

乙個子類的父類是唯一的,單是乙個父類可以有多個子類

抽象類

父類中的方法,被它的子類們重寫,子類各自的實現都不盡相同。此時父類的方法中只有方法的宣告有意義,而方法主體則沒有存在的意義了。既然方法體沒有意義,就把它捨棄. 把沒有方法主體的方法稱為抽象方法。包含抽象方法的類就是抽象類。

定義:抽象方法:沒有方法體的方法

抽象類:包含抽象方法的類

抽象方法:

使用abstract關鍵字修飾方法,該方法就成了抽象方法,抽象方法只包含乙個方法名

而沒有方法體

格式:抽象類:

乙個類包含抽象方法,那麼這個類必須是抽象類

格式:

抽象的使用

抽象類不能建立物件,如果建立,編譯無法通過而報錯。只能建立其非抽象子類的物件

抽象類中,可以有構造方法,是供子類建立物件時,初始化父類成員使用的

抽象類中,不一定包含抽象方法,但是有抽象方法的類必定是抽象類。抽象類中可以包含其他的成員方法

抽象類的子類,必須重寫抽象父類中所有的抽象方法,否則,編譯無法通過而報錯。除非該子類也是抽象類

抽象方法一定不能是靜態方法

繼承,super,this,抽象類

繼承 就是子類繼承父類的屬性和行為,使得子類物件具有與父類相同的屬性 相同的行為。子類可以直接 訪問父類中的非私有的屬性和行為。通過 extends 關鍵字,可以宣告乙個子類繼承另外乙個父類,定義格式如下 如下 class 父類 class 子類 extends 父類 成員變數同名時 小貼士 fu ...

09 繼承 super this 抽象類

繼承 就是子類繼承父類的屬性和行為,使得子類物件具有與父類相同的屬性 相同的行為。子類可以直接 訪問父類中的非私有的屬性和行為。在父子類的繼承關係當中,如果成員變數重名,則建立子類物件時,訪問有兩種方式 直接通過子類物件訪問成員變數 等號左邊是誰,就優先用誰,沒有則向上找。間接通過成員方法訪問成員變...

day09 繼承 super this 抽象類

子父類 現了同名的成員變數時,在子類中需要訪問父類中非私有成員變數時,需要使用 super 關鍵字,修飾父類成員變數,類似於之前學過的 this class father class sonextends father class extendsdemo03 演示結果 fu num 6zi num ...