多態(tài)

繼承 : extends

語法 子類的名字 extends 父類的名字 

父親
```
public class Uncle {
        private String name ;
        private  int age ;

    public void Hongbao() {
            System.out.println("舅舅要發(fā)紅包");
    }
}
```

 子類二:
```
package edu.xcdq;

public class UncleOne extends  Uncle {
    public void chouyan(){  
        System.out.println("大舅抽煙");
    }
    public void Hongbao(){
        System.out.println("大舅家道中落,發(fā)不起紅包,該送祝福了");
    }
}

 ```

子類二 :

1 子類能夠繼承到父類所有的不是私有的屬性 和 方法 

 2 子類能夠復(fù)寫父類的方法 如果沒有復(fù)寫,調(diào)用的是父類的方法 , 子類一旦復(fù)寫,優(yōu)先調(diào)用復(fù)寫后的子類方法

 優(yōu)點(diǎn):
 1 實(shí)現(xiàn)代碼的復(fù)用 

 2 有利于子類代碼的擴(kuò)展

 多成繼承
 ```
public class Uncle {
    private String name ;
    private  int age ;

    public void Hongbao() {
        System.out.println("舅舅要發(fā)紅包");
    }
}
 public class UncleOne extends  Uncle {
    public void chouyan(){
        System.out.println("大舅抽煙");
    }
    public void Hongbao(){
        System.out.println("大舅家道中落,發(fā)不起紅包,該送祝福了");
    }
}

package edu.xcdq;

public class UncleOneSon extends  UncleOne {

    public void Hongbao(){
        System.out.println("大舅的兒子厲害了 ,接著發(fā)紅包");
    }
}

 ```



類繼承的加載順序

先加載父類,再加載子類

祖先類的構(gòu)造方法最先執(zhí)行,祖先類最先被創(chuàng)造出來,其次是父類,最后是子類

在構(gòu)造方法中會隱性的調(diào)用super()超類 父類地?zé)o參構(gòu)造方法




final  最終的 最后的

被final修飾的成員不可以被改寫

1final 修飾的變量值不能發(fā)生修改 pl = 3.1415 
修飾基本數(shù)據(jù)類型, 其值不能發(fā)生改變,修改引用數(shù)據(jù)類型,例如數(shù)組 ,數(shù)組名不能指向新的空間

 2 final 修飾的方法不能被重寫

 3 final 修飾的類 不能被繼承 





    多態(tài)

一個父類有多個子類

把子類的對象賦值給父類的過程叫做向上轉(zhuǎn)型

把父類的對象賦值給子類的過程叫做向下轉(zhuǎn)型

語法:

正常語法:

類名  對象名 = new 類名();

向上轉(zhuǎn)型

 子類類型 對象名 = new 子類的對象 

向下轉(zhuǎn)型 :

 子類類型 對象名 = (子類類型 ) 父類的對象 

   //向上轉(zhuǎn)型
        UncleOne uncleOne1 = new UncleOne();
    uncleOne1.faHongbao();

    UncleTwo uncleTwo2 = new UncleTwo();
        uncleTwo2.faHongbao();

     //向下轉(zhuǎn)型
   Uncle uncle = new Uncle();
       UncleOne temp = (UncleOne) uncle;


    instanceof     判斷引用類型是否一致
    
判斷對象是否是一個類的實(shí)例(具體的對象)
package com.company;

public class Demo02 {
    public static void main(String[] args) {
        UncleOne dajiu = new UncleOne();
        ganHuo(dajiu);

        UncleTwo erjiu = new UncleTwo();
        ganHuo(erjiu);
    }
    public static void ganHuo( Uncle uncle ) {
        if (  uncle instanceof UncleOne ) {
            System.out.println("出門外干活");
        }else if (uncle instanceof UncleTwo) {
            System.out.println("在室內(nèi)干活");
        }else {
            System.out.println("傳進(jìn)來的不是舅舅,老太太沒辦法指使");
        }
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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