java子类调用爷爷类的同名方法,父类也有同名方法
时间: 2024-03-08 15:49:03 浏览: 145
调用父类构造方法-java ppt教程
在 Java 中,子类可以通过 `super` 关键字来调用父类的同名方法,也可以通过 `super` 关键字来调用爷爷类的同名方法。如果子类和父类、爷爷类中都有同名方法,那么子类调用该方法时会优先调用自己的方法,如果要调用父类或爷爷类的同名方法,可以使用 `super` 关键字进行调用。例如:
```java
public class Grandfather {
public void sayHello() {
System.out.println("Hello from Grandfather");
}
}
public class Father extends Grandfather {
@Override
public void sayHello() {
System.out.println("Hello from Father");
}
}
public class Son extends Father {
@Override
public void sayHello() {
// 调用父类的同名方法
super.sayHello();
System.out.println("Hello from Son");
}
public static void main(String[] args) {
Son son = new Son();
son.sayHello(); // 输出:Hello from Father Hello from Son
}
}
```
在上面的例子中,`Son` 类继承了 `Father` 类,而 `Father` 类继承了 `Grandfather` 类。`Grandfather` 类中定义了一个名为 `sayHello` 的方法,`Father` 类和 `Son` 类都覆盖了该方法。在 `Son` 类的 `sayHello` 方法中,使用 `super.sayHello()` 调用了父类的同名方法。当执行 `son.sayHello()` 时,首先输出的是调用父类同名方法 `Hello from Father`,然后输出的是子类自己的输出 `Hello from Son`。
阅读全文