09-JAVA繼承

JAVA繼承

JAVA繼承思維導圖

繼承的好處:

減少代碼的冗餘性(重要性)

編寫繼承代碼:

1、編寫父類:

  • [修飾符] class 類名 extends Object{

      屬性;
      方法;
    

    }

    • Object爲超類
  • [修飾符] class 類名{

      屬性;
      方法;
    

    }

2、編寫子類:

  • [修飾符] class 類名 extends 父類名{

    編寫獨有屬性和方法;
    

    }

注意:

  • 1、當一個沒有指明繼承哪個父類時,則默認繼承Object類(超類)
  • 2、Object類是所有類的父類(超類)
  • 3、在子類中可以直接訪問父類中的屬性(前提是父類屬性沒有使用private修飾)

繼承中的注意事項:

子類繼承父類,但不能繼承父類的構造方法

父類也叫做超類(基類),子類也叫做派生類

繼承滿足的條件:

  • 貓是動物

繼承兩大特性:

  • 一個類只能繼承一個直接的父類,也就是類是單繼承性

    • (一個兒子只有一個親爹)
  • 類具有傳遞性

常見錯誤:

手寫構造方法時,建議先編寫無參構造,再編寫需要的

當實例化子類時父類做了什麼?

先執行父類的構造方法,在執行子類相匹配(有無參)的構造方法

如果子類構造方法中沒有指明則默認調用父類無參構造方法

如果子類構造方法中指明父類哪個構造方法,則先執行父類相匹配的構造方法,然後再執行子類相匹配的構造方法

this與super關鍵字訪問實例變量區別:

this關鍵字:

  • 代表當前這個對象
  • this可以訪問本類中的實例變量、實例方法,也可以訪問本類中的其他構造方法
  • this還可以訪問本類中的實例變量、實例方法
  • 如果訪問實例變量時,默認前面加this,但是當使用this,訪問實例變量時,先在當前類中找該屬性,如沒有找到則去父類中找

super關鍵字:

  • 表示超類或父類

  • super只能在子類中作用,可以訪問父類中的實例變量、實例方法,還可以訪問父類的構造方法

  • (super直接去父類中找)

  • super(*)等價於super()

    • (不寫默認)

重寫:

Overwrite也叫做覆蓋

子類方法名稱必須與父類方法名稱一致

參數列表一致

返回類型一致或父類方法返回類型的子類類型

修飾符一致(不能縮小範圍)

子類不能重寫:

  • 構造方法不能被重寫
  • 屬性不能重寫
  • 靜態方法不能重寫
  • 私有方法不能重寫
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章