天天看點

面向對象三大特性-繼承

1、定義:

繼承描述的是類與類之間的一種關系,即“is-a”關系;繼承其他類的類被稱為子類,被繼承的類稱為父類,java隻支援單繼承,即一個子類隻能繼承一個父類,但可以實作多個接口

2、作用:

子類可以使用父類中所有非private、default修飾的方法和屬性,實作代碼複用,減少代碼編寫

3、重寫

如果子類對父類中的方法不滿意,可以重寫從父類繼承的方法,調用時,優先調用子類重寫的方法

重寫規則:

方法的傳回值不一定要相同!隻要保持和父類的傳回值相容就行了!

比如,父類的某個方法傳回值是 double,子類重寫該方法時可以傳回 int,因為 int 可以轉為 double。

另外,子類重寫方法時,通路修飾符要使得該方法的可見性不低于父類中的方法!如父類的方法是 public 的,

子類必須是public,父類是 private,子類可以是 private, package 和 public。

繼承的初始化順序:

父類對象->屬性初始化->構造方法->子類對象->屬性初始化->構造方法

4、final關鍵字

final可以修飾類、方法、屬性、變量

修飾類時:表示該類不能被繼承

修飾方法時:表示該方法不能被覆寫

修飾屬性時:該屬性不會被自動初始化,要麼屬性有值,要麼通過構造方法初始化

修飾變量時:變量隻能被指派一次,即為常量

5、super關鍵字

子類通過super關鍵字通路父類中的屬性及方法

6、Object類

如果沒有繼承别的類,隐含繼承Object類,toString()傳回的是對象Hashcode

equals()方法:比較的是對象引用的是否是同一塊記憶體位址,引用是否指向一個對象