面向對象三大特徵之一繼承

一,繼承概念及使用方法

概念:子類和父類產生關係,子類可以擁有父類中非私有的成員
使用方法:子類 extends 父類

二,繼承的特點

(1) 不支持多繼承,只支持單繼承(一個兒子只能有一個父親)
(2) 一個父類可以有多個子類(一個父親可以有多個子類)
(3) 可以多層繼承(也可以子子輩輩單傳)
(4) object是所有類的超類(如果一個子類沒有明確extends父類,那麼這個類就默認extends object)

三,super和this

super:代表的是父類對象

  1. 每一個構造方法中,第一行默認有個super()–>代表的是父類的空參構造–>創建子類對象之前會創建父類對象
  2. 調用父類中的成員變量–>在子類中 super.成員變量名
    調用父類中的成員方法–>在子類中 super.方法名(參數)
    調用父類中的構造方法–>在子類的構造中 super()或者super(實際參數)

this:代表的是當前對象
調用本類的成員變量–>在本類中 this.成員變量名
調用本類的成員方法–>在本類中 this.成員方法名
調用本類的構造方法–>在本類的構造中 this()或者this(實參)

注意:

  • this和super調用構造方法的時候,需要寫在構造方法的第一行
  • 在構造中,this和super不能同時手動寫出來(因爲都必須寫在第一行)
  • 不要用this在有參和無參兩個構造中互相調用

四,繼承中變量和成員方法訪問特點

父類與子類變量或成員方法重名:new 對象時 等號左邊是誰(子或父)就先調用誰的變量,new的是誰就先調用誰的方法,如果沒有就去它的父類找!

父類與子類方法中變量或成員方法不重名:new 父類只能調父類的變量,new 子類可以使用子類和父類的變量

五,繼承中構造方法訪問特點

子類構造方法中默認第一行會有一個隱藏的super()方法,默認執行父類的無參構造

六,方法重寫

  • 方法的重載(overload)–>方法名相同,參數列表不同
  • 方法的重寫(override)–>子類中有一個和父類一樣的方法
    註解:@Override–>檢測該方法是不是重寫的方法
    前提:必須有子父類繼承關係
  • 方法重寫的使用場景:
    子類想要對父類中的方法進行功能的增強

七,方法重寫注意事項

  • 子類方法覆蓋父類方法,必須要保證權限大於等於父類權限。(public->protected->默認->private)
  • 子類方法覆蓋父類方法,返回值類型、函數名和參數列表都要一模一樣。
  • 私有方法不能被重寫(父類私有成員子類是不能繼承的)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章