1. 程式人生 > 其它 >100天程式碼提升計劃-第20天

100天程式碼提升計劃-第20天

多型的好處

無論右邊怎麼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("狗也吃狗糧");
    }