學習內容
- 繼承與多態(tài)
- 繼承使用場景與構造方法
- 多態(tài)的使用
1.繼承 Extends
繼承是面向對象的三大特征之一,也是軟件實現(xiàn)復用的重要手段炸裆,Java的繼承具有單繼承的特點,即每個子類只有一個直接父類坏快。
2.繼承使用場景
(1)草巡、子類需要額外添加成員變量
(1)属铁、子類需要添加自己獨有的行為方式
//基類 父類
class Car{
protected int wheels;//成員變量可以被繼承
public string color;
public Car(int wheels){ //構造方法不可以被繼承
this.wheels=wheels;//this:表示訪問當前類或者對象的屬性或者方法
}
public void startEngine(){ //方法可以被繼承
}
//子類
class Audi extends Car{
String feeling;
//子類使用super()調用父類的構造方法
public Audi(int wheels,String feeling){
super(wheels);
}
}
構造方法的執(zhí)行順序:父類A—>子類B—>子類C
而且子類不能繼承父類private修飾的屬性或者方法。
如果子類需要在父類的基礎上重新實現(xiàn)父類的方法躬翁,子類必須重寫焦蘑,這個過程稱為重寫或覆蓋
在執(zhí)行時先從當前類里查找這個方法,如果沒有就從父類去查找盒发,如果父類中也沒有這個方法例嘱,就報錯狡逢。重載與重寫的區(qū)別:
重載:同一個類里面 方法名相同 參數(shù)不同
重寫:兩同:方法名相同 參數(shù)相同
兩小:a.子類的返回值必須比父類的返回值小或者相同拼卵; b.子類拋出的異常要比父類拋出的異常要小或者相同
一大:子類的修飾符范圍要比父類更大或者相同
如果沒有做到奢浑,那么就會出錯
我們編程講究:低耦合、高內聚
繼承的優(yōu)點:復用性更強
缺點:a.打破了封裝性腋腮,是子類與父類耦合性大雀彼;b.安全性降低
設計原則:
(1)盡量隱藏父類的內部數(shù)據(jù)(private)
(2)不要讓子類可以隨意訪問(final)
(3)盡量不要再構造函數(shù)中調用被子類重寫的方法
3.多態(tài)的使用
多態(tài):編譯與運行時是兩個東西,不同的對象
子類可以向父類轉化
在編譯與運行時的對象是具有繼承關系的即寡、且只能是子類對象傳給父類對象時才可以使用多態(tài)(不能父類的對象傳給子類)
在使用的時候徊哑,如果需要使用之類的方法或者屬性,必須強制轉化為對應的子類對象