面向對象的三大特徵之繼承性

面向對象的三大特徵:封裝性、繼承性、多態性。

繼承

繼承是多態的前提 ,如果沒有繼承,就沒有多態。

繼承主要解決的問題就是:共性抽取。

繼承關係當中的特點:

  1. 子類可以擁有父類的“內容”
  2. 子類還可以擁有自己的專有的內容。

繼承的格式:

在繼承的關係中,”子類就是一個父類“。也就是說,子類可以被當做父類看待。
例父類是員工,子類是講師,那麼“講師就是一個員工”。關係:is-a。

複製代碼

定義父類的格式:(一個普通的類的定義)
public class 父類名稱{
    //...
}

定義子類的格式:
public class 子類名稱 extends 父類名稱{
    //...
}

複製代碼

區分子類重名的三種方法:

  • 局部變量: 直接寫成員變量
  • 本類的成員變量: this.成員變量
  • 父類的成員變量: super.成員變量

注意事項:
無論是成員變量還是成員方法,如果沒有都是向上找父類,絕不會向下找子類的

  • 重寫(Override):方法名稱一樣,參數列表【也一樣】。覆蓋、覆寫。
  • 重載(Overload):方法名稱一樣:參數列表【不一樣】。

方法覆蓋重寫的特點:創建的是子類對象,則優先用子類方法。

方法覆蓋重寫的注意事項:

1.必須保證父子類之間方法的名稱相同,參數列表也相同。

  • @Override:寫在方法前面,用來檢測是不是有效的正確覆蓋重寫。
  • 這個註解就算不寫,只要滿足要求,也是正確的方法覆蓋重寫。

2.子類方法的返回值必須【小於等於】父類方法的返回值範圍。

  • 小擴展提示:java.Lang.Object類是所有類的公共最高父類(祖宗類),java.lang.String就是Object子類。

3.子類方法的權限必須【大於等於】父類方法的權限修飾符。

  • 小擴展提示:public > protected > (default) > private
  • 備註:(default)不是關鍵字default,而是什麼都不寫,留空。

super和this關鍵字的用法

擴展:
子類必須調用父類的構造方法,不寫則贈送super();寫了則用寫的指定的super調用,super只能有一個,還必須是第一個。

super關鍵字用來訪問父類的類容,而this關鍵字用來訪問父類內容。用法也有三個:

  1. 在本類的成員方法中,訪問本來的成員變量。
  2. 在本類的成員方法中,訪問本類的另一個成員方法。
  3. 在本類的構造方法中,訪問本類的另一個構造方法。

在第三種用法要注意:

  • A:this(...)調用也必須是構造方法的第一個語句,唯一一個。
  • B:super和this兩構造調用,不能同時使用。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章