Java 是否可以对超类对象调用子类的方法?
动物是狗的超类,狗有一种叫bark的方法
public void bark(){
System.out.println("woof");
}
考虑以下:
Animal a = new Dog();if (a instanceof Dog){
a.bark();
}
会发生什么?
- the assignment isn’t allowed
- the call to bark is allowed and “woof” is printed at run time
- the call to bark is allowed but nothing is printed
- the call to bark causes a compile time error
- the call to bark results in a run time error
我说2是因为我们正在检查物体是否是狗;因为dog是其中包含bark方法的类,如果是,则将其调用,它将打印出:s
我的理解对吗?
回答:
因为Animal没有名为bark的方法。这样想吧,所有的狗都是动物,但不是所有的动物都是狗。所有的狗都会叫,但不是所有的动物都会叫。
以上是 Java 是否可以对超类对象调用子类的方法? 的全部内容, 来源链接: utcz.com/qa/410711.html