今天在看《think in java 》的时候,看到upcasting,即对象的向上转型,即可以将子类的对象实例赋值给一个父类的对象实例,这样有助于代码的实现和维护。
如:
class Animal{
public void howl(){
}
public void showMessage(Animal a)
a.Howl();
}
class Dog extends Animal{
public void howl(){
System.out.println("I am a Dog");
}
}
class Cat extends Animal{
public void howl(){
System.out.println("I am a Cat");
}
}
public static void man(String agu[]){
Animal a=new Animal();
Cat cat=new Cat();
Dog dog=new Dog();
a.howl(cat);
dog.howl(dog);
}
输出:
I am dog
I am Pig