類的繼承格式
class 父類 {
}
class 子類 extends 父類 {
}
關鍵詞:extends,implements
需要注意的是:Java不支持多繼承,但支持多重繼承。
繼承的缺點:耦合度就會提高,造成代碼之間的聯繫緊密,代碼獨立性越差。
implement:使用implement關鍵字可以變相的是java具有多繼承的特性,使用範圍爲類繼承接口的情況,可以同時繼承多個接口(接口與接口之間採用逗號分隔);
public interface A {
public void eat();
public void sleep();
}
public interface B {
public void show();
}
public class C implements A,B {
}
final關鍵字聲明類可以把類定義成不能繼承的,即最終類;或者用於修飾方法,該方法不能被子類重寫;
構造器
子類是不繼承父類的構造器(構造方法或者構造函數)的,它只是調用父類的構造器並配以適當的參數列表。
如果父類的構造器沒有參數,則子類的構造器中不需要使用super關鍵字調用父類的構造器,系統會自動調用父類的無參數構造器。
重寫
即外殼不變,核心重寫!子類可以根據需求實現父類的方法。
重寫的規則:
- 訪問權限不能比父類中被重寫的方法的訪問權限更低,
- 聲明爲static的方法不能被重寫,但能夠被再次聲明。
- 子類和父類在同一個包中,那麼子類可以重寫父類的所有方法,除了聲明爲private和final的方法。
- 子類和父類不在同一個包中,那麼子類只能夠重寫父類的聲明爲public和protect的非final方法。
- 重寫的方法能夠拋出任何非強制異常,無論被重寫的方法是否拋出異常,重寫的方法不能拋出新的強制性異常,或者比被重寫方法聲明的更廣泛的強制性異常,反之則可以。
- 構造方法不能被重寫。
重載
重載是在一個類裏面,方法名相同,而參數不同,返回類型可以相同也可以不同。
每一個重載的方法都必須有一個獨一無二的參數類型列表。
最常用的方法就是構造器的重載。
重載的規則:
- 被重載的方法必須改變參數列表;
- 被重載的方法可以改變返回類型;
- 被重載的方法可以改變訪問修飾符;
- 被重載的方法可以聲明新的或更廣的檢查異常。
- 方法能夠在同一個類中或者在一個子類中被重載;
- 無法以返回值類型作爲重載函數的區分標準;