当子类覆盖多个方法并调用其父类中的方法时,父类是使用它自己的预定义方法还是子类已覆盖的方法?
对于某些上下文和示例,我的问题源于 AP 计算机科学课程中的这个问题。下面,当super.act()
被调用时,act
来自Dog
调用的方法eat()
。该eat
调用是否转到or中的eat
方法?Dog
UnderDdog
考虑以下两个类。
public class Dog
{
public void act() {
System.out.print("run");
eat();
}
public void eat() {
System.out.print("eat");
}
}
public class UnderDog extends Dog
{
public void act() {
super.act();
System.out.print("sleep");
}
public void eat() {
super.eat();
System.out.print("bark");
}
}
假设以下声明出现在客户端程序中。
Dog fido = new UnderDog();
调用的结果是fido.act()
什么?
run eat
run eat sleep
run eat sleep bark
run eat bark sleep
- 由于无限递归,没有打印任何内容。