生活随笔
收集整理的這篇文章主要介紹了
Day11多态部分-2 【1.2 多态的前提】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【1.2 多態的前提】*****
package Day11;public class Test_02 { /* Animal1 c = new Cat1(); //有個人來給你爸爸去講課 講電工培訓,但爸爸不在,我又想掙這錢,就易容成我爸爸* show(c);//然后去講課,我只會講java培訓,問講的是什么課?,還是Java因為實際講課人是我* Dog1 dd =(Dog1 ) d;//現在女友來找逛街,但我此時還是易容成我爸爸的樣子,現在偷偷要去卸妝才出來* dd.show2();//然后和女友逛街*//*一個兒子經過化妝成了父親 但他實際上還是兒子 那么他做的事(行為) 是 兒子做的呢 還是父親做的呢? 顯然還是兒子化了妝的兒子 必須先從'父親'卸妝 成 兒子 才能干兒子特有的事(行為)*/public static void main(String[] args){Animal1 c = new Cat1(); Animal1 d = new Dog1();Animal1 p = new Pig1();show(c);show(d);show(p);//想要調用其他特有方法,要從動物轉回貓,才能調用子類的方法-->強制轉換//沒有繼承父類的關系,因此只能通過 向下轉型 來實現顯示//父類引用 轉成 子類類型:向下轉型Cat1 cc = (Cat1) c; //語法和 short s = (short ) i 基本數據類型強制轉換相似cc.show1();Dog1 dd =(Dog1 ) d;dd.show2();Pig1 pp =(Pig1) p;pp.show3();/*Animal a10 = new Animal();Cat c = (Cat)a10;錯誤!!不能強制將一個動物轉成貓不能將父類對象 轉成 子類類型多態 轉的是父類引用 指向了自己的子類對象時 該引用可以被提升 也可以被強轉多態 至始至終 都是子類對象在做著變化(指向和引用都是子類)*/}public static void show(Animal1 tmp){tmp.eat(); }
}abstract class Animal1 {abstract void eat();
}class Cat1 extends Animal1{public void eat(){System.out.println("貓吃魚");}public void show1(){System.out.println("貓抓老鼠");}
}
class Dog1 extends Animal1{public void eat(){System.out.println("狗吃骨頭");}public void show2(){System.out.println("狗看護家");}}
class Pig1 extends Animal1{public void eat(){System.out.println("豬吃飼料");}public void show3(){System.out.println("豬拱地");}
}
總結
以上是生活随笔為你收集整理的Day11多态部分-2 【1.2 多态的前提】的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。