100天程式碼提升計劃-第20天
阿新 • • 發佈:2022-03-25
多型的好處
無論右邊怎麼new,等號左邊的呼叫方法不會改變
二、物件向上轉型
向上轉型一定是安全的
package zhuanxing; public abstract interface animal { public abstract void eat(); }
package zhuanxing; public class dog implements animal { @Override public void eat() { System.out.println("狗吃骨頭!"); } }
package zhuanxing;public abstract class animal1 { public abstract void eat(); }
package zhuanxing; public class dog1 extends animal1{ @Override public void eat() { System.out.println("狗吃骨頭"); } }
package zhuanxing; public class main { public static void main(String[] args) {//①使用介面進行呼叫 animal animal=new dog(); animal.eat(); System.out.println("--------"); //①使用方法進行呼叫 animal1 animal1=new dog1(); animal1.eat(); } }
三、向下轉型
格式:子類名稱 物件名=(子類名稱)父類名稱
/*animal1.eat1(); 報錯的原因是因為此時的狗已經被當成了動物,不是所有的動物都吃狗糧*/ //此時的狗需要向下【還原】,才能成為狗dog1 dog1=(zhuanxing.dog1)animal1; dog1.eat1();//此時的狗就可以吃狗糧了
public void eat1(){ System.out.println("狗也吃狗糧"); }