多態實例及其問題

class Animal{
public int age;

public void info(){ //若該方法不寫,就達不到重寫(覆蓋)的目的,實現不了多態,且程序編譯會出錯。
System.out.println("父類方法");
}
//錯誤提示如下:
/* Dm.java:23: 找不到符號
符號: 方法 info()
位置: 類 Animal
a.info();
^
Dm.java:26: 找不到符號
符號: 方法 info()
位置: 類 Animal
a.info(); */    
}
class Bird extends Animal {
public void info() {
System.out.println("我是一隻鳥!");
}
}

class Fish extends Animal {
public void info() { //如這個方法沒重寫,會默認調用父類的同名方法
System.out.println("我是一隻魚!");
}
}

public class Dm{
public static void main(String[] args){
Animal a = new Bird(); //將子類對象的引用賦給父類的引用(或者說,將父類的引用a指向鳥這個實例(對象))
a.info();
a = new Fish();
a.info();
}
}
/*------------------------
我是一隻鳥!
我是一隻魚!
------------------------*/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章