我已经阅读了网络上的大部分论文,但仍然无法理解为什么我们必须使用向上转型。
class Animal
{
public void callme()
{
System.out.println("In callme of Animal");
}
}
class Dog extends Animal
{
public void callme()
{
System.out.println("In callme of Dog");
}
public void callme2()
{
System.out.println("In callme2 of Dog");
}
}
public class UseAnimlas
{
public static void main (String [] args)
{
Dog d = new Dog();
Animal a = (Animal)d;
d.callme();
a.callme();
((Dog) a).callme2();
}
}
你可以考虑这个向上转型的例子。在这里向上转型有什么用?d
和a
都会给出相同的输出!