多态实例及其问题

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();
}
}
/*------------------------
我是一只鸟!
我是一只鱼!
------------------------*/

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