1. 程式人生 > 其它 >Java學習筆記69——對多型向下轉型的理解

Java學習筆記69——對多型向下轉型的理解

對多型向下轉型的理解

多型的向下轉型:
    存在多型的前提:(缺一不可)
        1、要有繼承關係
        2、要有方法重寫
        3、要有父類的引用指向子類物件


class 曹操{
    int age = 50;
    public void fight(){
        System.out.println("赤壁之戰")
    }
}

class 曹植 extends 曹操{
    int age = 28;
    public void fight(){
        System.out.println("習武練習");
    }

    public void xieShi(){
        System.out.println("寫詩,習慣將名字寫在詩的尾部");
    }
}

某一天,要發生赤壁之戰,曹操拉肚子了,臨時戰場上沒有人指揮,曹植看到了
他立刻換上父親的衣服,貼上假鬍子,假扮父親上戰場指揮。
//這種現象,叫向上轉型,多型的引用
曹操 c = new 曹植();
c.fight(); // "習武練習"
//一旦寫詩就暴漏了
//c.xieShi();


這時候,曹操上完廁所了回來,告知曹植說我回來了。
這時候曹植脫下父親的衣服,撕掉假扮的鬍子,回到自己的身份
//這個現象叫做向下轉型
曹植 c2 = (曹植)c;
c.fight();
//這時候就可以寫詩了
c.xieShi();