是否可以在超类对象上调用子类的方法?
2022-09-02 14:15:39
动物是狗的超类,狗有一种叫做吠叫的方法
public void bark()
{
System.out.println("woof");
}
请考虑以下事项:
Animal a = new Dog();
if (a instanceof Dog){
a.bark();
}
将会发生什么?
- 不允许分配
- 允许对树皮的调用,并在运行时打印“woof”
- 允许叫喊吠,但不打印任何内容
- 对树皮的调用导致编译时错误
- 对树皮的调用导致运行时错误
我说2,因为我们正在检查物体是否是狗;因为狗是其中有树皮方法的类,如果是,那么我们称之为它将打印出来:s
我的理解是否正确?