繼承概念 繼承是多態的前提,主要用於解決共性抽取 特點 子類可以擁有父類的內容,子類也可以有自己的專屬內容 格式 public class 父類{} public class 子類 extends 父類{} 如果子類與父類成員變數重名,逗號前是誰就優先使用誰,沒有則向上找 重寫 在繼承關係中,子類與 ...
繼承概念
繼承是多態的前提,主要用於解決共性抽取
特點
子類可以擁有父類的內容,子類也可以有自己的專屬內容
格式
public class 父類{}
public class 子類 extends 父類{}
如果子類與父類成員變數重名,逗號前是誰就優先使用誰,沒有則向上找
重寫
在繼承關係中,子類與父類成員方法名一樣,參數列表也一樣,因為對象是子類的對象,所以優先用子類方法
註意事項
@override可以檢測方法是否重寫
子類的返回值小於等於父類返回值的範圍
子類方法的許可權大於等於父類方法的許可權修飾符
繼承後的構造方法
子類構造方法中有一個預設隱含的super關鍵字,所以一定是先調用的父類構造方法
可以通過super關鍵字子類構造調用父類重載構造方法
只用子類構造方法能夠調用父類構造方法,且不能多次調用,且要放在方法體的第一句
super關鍵字用法
在子類方法中調用父類成員變數
super.成員變數名
在子類方法中調用父類成員方法
super.成員方法()
在子類構造方法中調用父類構造方法,且要放在第一句
super.構造方法()
this關鍵字
訪問本類內容,調用時也要放在方法體的第一句,所以不能和super同時使用
Java語言是單繼承的,只能有唯一一個父類,但可以多級繼承(一個子類的直接父類只能有一個,但一個父類可以有多個子類)
抽象類
父類中的方法,如果不知道如何進行{}方法體實現,那麼這應該就是一個抽象方法
格式
public abstract class 類名{
abstract void 方法名(); //定義抽象方法
}
註意事項
1.不能直接創建new抽象類對象
2.必須用一個子類繼承抽象類
3.子類必須覆蓋重寫抽象父類中所有的抽象方法
去掉abstract關鍵字,補上{}
4.創建子類對象進行使用