Java多层继承后,父类指针执行哪个子类的方法
时间: 2023-12-27 19:04:09 浏览: 85
Java中父类怎么调用子类的方法
在Java多层继承中,如果父类指针指向了某个子类的对象,那么执行哪个子类的方法取决于具体的情况。
如果子类没有覆盖父类的方法,那么执行的是父类的方法。
如果子类覆盖了父类的方法,那么执行的是子类的方法。
如果子类继承了多个父类,并且这些父类中有相同的方法,那么子类必须重写这个方法来指定要执行哪个父类的方法。例如:
```java
class A {
public void foo() {
System.out.println("A.foo");
}
}
class B extends A {
public void foo() {
System.out.println("B.foo");
}
}
class C extends A {
public void foo() {
System.out.println("C.foo");
}
}
class D extends B, C {
public void foo() {
super.B.foo(); // 调用B类的foo方法
super.C.foo(); // 调用C类的foo方法
}
}
```
在上面的例子中,D类继承了B和C类,它们都有一个名为foo的方法。D类必须重写foo方法来指定要执行哪个父类的方法。在D类的foo方法中,可以使用super关键字来调用指定的父类的方法。
阅读全文