繼承
怎樣實現繼承:1,先提取共有的屬性和方法,放到一個類里,這個叫父類、基類、超類
2.編寫子類 修飾符 class 子類名 extends 父類名
好處:提高代碼的復用性
子類怎么去訪問父類成員:
直接用 name
this.資源 this.name
super.資源 super.name
能繼承父類的那些資源:
private 只能本類使用
默認(friendly) 只能是本包訪問
protected(受保護的) 只能被同包 和不同包子類訪問
public(共有的)能被整個項目去訪問
不能繼承父類的那些資源:
私有的不能被繼承
構造方法不能被繼承,但是可以被訪問
繼承是實現形式:顯示的繼承extends
隱式的繼承(什么都不寫)
構造訪問的實例化過程:父類的屬性——>父類構造方法——》子類的屬性——>子類的構造方法
(靜態)父類的靜態屬性——》父類靜態的代碼塊——》子類的靜態屬性——》子類的靜態代碼塊——》父類的屬性——>父類構造方法——》子類的屬性——>子類的構造方法
super關鍵字:
訪問父類的屬性:super.屬性名
訪問父類的方法:super.方法名
訪問構造方法:1.沒有使用super去顯示的調用父類的構造方法,也沒有使用this去顯示的調用本類的構造方法,那么默認調用父類的無參構造
2.如果使用super顯示調用父類的構造方法,那就直接調用這個構造方法,不去調用父類的無參構造了
3..如果使用this顯示調用本類的構造方法,那就直接調用這個構造方法,不去調用父類的無參構造了
4.如果你什么都不寫,它會一直往上調用父類,直到Object類的無參構造為止
方法重寫
原因:不能滿足業務的需求
方法重寫 方法重載 --------一定要背會
位置 父子類 同類
方法名 相同 相同
參數列表 相同 不同
返回值 相同或子類 無關
訪問修飾符 相同或擴大 無關
抽象類和抽象方法
特點:用abstract修飾的類叫做抽象類
抽象類里可以有抽象方法,也可以沒有抽象方法
抽象類不能被實例化,它里邊的抽象方法必須被子類重寫,否則子類也是抽象類
抽象方法:用abstract修飾的方法叫抽象方法
有抽象方法的類必須是抽象類
抽象方法沒有方法體
final
修飾屬性:修飾基本數據類型——值不變
修飾引用數據類型——地址不變,里面的屬性可以改變
修飾方法:方法不能被重寫
修飾類:類不能被繼承
