繼承關(guān)鍵詞

子類繼承父類的功能? ? **extends? 父類的名稱**


舉例:人 ==》 男人 女人? ? 打工人 ==》 經(jīng)理 老板


父類 舅舅


```java

public class Uncle {

? ? private String name;

? ? private int age;

? ? // getter? setter

? ? public void setName (String name) {

? ? ? ? this.name = name;

? ? }

? ? public String getName() {

? ? ? ? return name;

? ? }

? ? public void setAge(int age) {

? ? ? ? this.age = age;

? ? }

? ? public int getAge() {

? ? ? ? return age;

? ? }

? ? // 發(fā)紅包

? ? public void sendHongbao() {

? ? ? ? System.out.println("舅舅在發(fā)紅包");

? ? }

}


```


子類:大舅


```java

public class UncleOne extends Uncle{


? ? public void chouyan(){

? ? ? ? System.out.println("大舅喜歡抽煙");

? ? }


}

```


子類:二舅


```java

public class UncleTwo extends Uncle{

? ? public void drinkWine() {

? ? ? ? System.out.println("二舅喜歡喝酒");

? ? }

}

```




**子類只能繼承自一個父類,不能繼承多個父類**? 多重繼承(不允許)


```java

// 錯誤代碼

public class UncleThree extends Uncle , UncleOne{

}

```


子類 多層繼承


```java

// 多層繼承

public class UncleOneSon extends UncleOne{

}

```


# 在繼承中類加載的順序


先創(chuàng)建父類,再創(chuàng)建子類


父類的構(gòu)造方法先于子類的構(gòu)造方法調(diào)用


```java

? ? public UncleOne() {

? ? ? ? super();? // 調(diào)用父類的構(gòu)造方法

? ? ? ? System.out.println("子類大舅的構(gòu)造方法被創(chuàng)建了");

? ? }

```


# 方法的復(fù)寫(覆寫)override


```java

? ? @Override

? ? public void sendHongbao() {

? ? ? ? System.out.println("大舅家道中落,紅包只有1毛錢");

? ? }

```


如果子類沒有復(fù)寫父類的方法,調(diào)用的是父類的


如果復(fù)寫了父類的方法,在調(diào)用時優(yōu)先調(diào)用子類復(fù)寫后的方法


**要求**


1 方法的簽名完全一致


2 方法體不同




# Final


1 修飾的內(nèi)容不可以發(fā)生改變


1.1 修飾的是基本數(shù)據(jù)類型,其值不可以發(fā)生改變


1.2 修飾的是引用數(shù)據(jù)類型,引用的地址不能發(fā)生改變(不能指向新的空間),但是原本引用的空間中的值是可以發(fā)生修改的

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容