多态特征主要体现在扩展性.
比如
class Fu {
public void show() {
System.out.println("Fu");
}
}
class Zi extends Fu {
public void show() {
System.out.println("Zi");
}
public void eat() {
System.out.println("eat");
}
}
向上转型Fu f = new Zi();这样父类引用指向子类对象,Fu类对象f就可以调用自己子类重写过的show方法,输出结果"Zi";
但是这有一个弊端,就是f不能调用Zi子类中特有的方法eat(),因为它本身没有;所以这时候就需要向下转型,将f转成Zi类.
Zi z = (Zi)f;然后再调用eat()方法就没问题了,因为z是ZI类的对象了,可以使用本类方法. |