繼承
繼承是指一個類(子類)繼承于另外一個類(父類),子類從父類繼承到的內(nèi)容是父類的屬性和方法,子類可以在內(nèi)部調(diào)用父類的方法與變量
-
JAVA之中的繼承只能是單繼承,一個類只能繼承一個類,一個子類只有一個父類,但是一個父類有多個子類。
類之間的繼承關系 JAVA之中的每一個類都是有java.lang.Object類繼承而來的,所以每個類都直接或者間接的是Object的子類。
繼承關鍵字
關鍵字的使用決定了一個對象與另外一個對象是否是IS-A關系。
Java只支持單繼承(繼承基本類和抽象類),但是我們可以用接口來實現(xiàn)(多繼承接口來實現(xiàn))。
繼承基本類和抽象類用extends關鍵字,實現(xiàn)接口類的繼承用implements關鍵字。
-
extends
這個關鍵字聲明了一個類是繼承另外一個類而來的:
//A類
public class A {
//私有變量1
private int variable1;
//受保護變量2
protected int variable2;
//公開變量3
public int variable3;
public void func() {
}
}
// B類
public class B extends A {
}
-
implements
接口使用的關鍵字,也屬于繼承的一種,接口詳細請到另外一篇進行閱讀:
//A類
public class A {
//私有變量1
private int variable1;
//受保護變量2
protected int variable2;
//公開變量3
public int variable3;
public void func();//不能有函數(shù)的具體實現(xiàn)
}
// B類
public class B implements A {
//必須實現(xiàn)的方法
@Override
public void func() {
int variable4= variable2;
}
}
繼承的結果
子類和父類在同一個包下時 ,子類和子類的對象可以調(diào)用父類的默認的,受保護的,公有的屬性以及方法。
子類和父類在不同的包下時,在子類中可以調(diào)用受保護的,公有的屬性以及方法,而子類的對象可以調(diào)用受保護的,公有的屬性以及方法。
方法的重寫
當父類中的方法不能滿足子類的需求的時候,這時候需要重寫父類的方法。
重寫后的方法會被優(yōu)先調(diào)用。
方法的重寫要保證以下幾點:
- 保證子類方法和父類方法的方法簽名(方法名+參數(shù)列表)一致;
- 訪問權限 : 子類方法的訪問權限(修飾符)不能夠比父類方法的訪問權限更低;
- static 方法不能夠被覆寫
- 返回值類型 : 子類方法的返回值類型可以是父類方法的返回值類型的子類或者相等
繼承的優(yōu)點
提高了代碼的復用性
讓類與類之間產(chǎn)生了關系,給第三個特征多肽提供了前提
