Java繼承

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

父類

package com.company;

public class UncleOne extends Uncle{
     public void chouyan(){
         System.out.println("大舅抽煙");
     }
     public void fahongbao(){
         System.out.println("");
     }
}

子類:

package com.company;

public class UncleTwo extends Uncle{
    public void hejiu(){
        System.out.println("二舅000");
    }
    // 方法的重寫 復(fù)寫 覆寫
    public void fahongbao(){
        System.out.println("二舅送");
    }
}

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

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

3.除了復(fù)寫,子類可以擴充父類沒有的方法

優(yōu)點:

1.實現(xiàn)代碼的復(fù)用

2.有利于子類代碼的擴展

多層繼承

public class Uncle {
    private String name;
    private int age;

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

public class UncleOne extends Uncle{
     public void chouyan(){
         System.out.println("大舅抽煙");
     }
     public void fahongbao(){
         System.out.println("大舅發(fā)紅包");
     }
}

public class UncleOneSon extends UncleOne{
    public void fahongbao(){
        System.out.println("大舅的兒子");
    }
}

類繼承的加載順序

先加載父類,在加載子類

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

在構(gòu)造方法當(dāng)中會隱性的調(diào)用super()超類 父類的無參構(gòu)造方法

final 最終的 最后的

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

  1. final修飾的變量值不能發(fā)生修改 PI=3.1415

    修飾基本數(shù)據(jù)類型,氣質(zhì)不能發(fā)生改變;修改引用數(shù)據(jù)類型,例如數(shù)組,數(shù)組中的值可以發(fā)生修改,但是數(shù)組名不能指向新的空間

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

  3. final修飾的類不能被繼承

多態(tài)

一個父類有多個子類

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

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

語法:

正常語法:

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

向上轉(zhuǎn)型:

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

向下轉(zhuǎn)型:

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

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

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

instanceof

判斷對象是否是一個類的實例(具體的對象)

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("傳入的不是舅舅,老太太沒辦法");
        }
    }
  }
?著作權(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)容