super关键字可以指代父类的父类吗
问题描述:super关键字可以指代父类的父类吗
推荐答案 本回答由问问达人推荐
在 Java 中,`super` 关键字只能用于引用直接父类的成员和构造方法,无法直接引用父类的父类。`super` 关键字只能访问当前类的直接父类的成员,而无法跨越多个继承层级访问更高层次的父类。
如果要访问父类的父类(即祖父类)的成员,可以通过在父类中定义方法来实现间接访问。子类通过调用父类的方法,再由父类方法中使用 `super` 关键字访问父类的父类成员。
例如:
class Grandparent {
public void grandparentMethod() {
System.out.println("Grandparent method");
}
}
class Parent extends Grandparent {
public void parentMethod() {
System.out.println("Parent method");
}
public void accessGrandparentMethod() {
super.grandparentMethod();
}
}
class Child extends Parent {
public void childMethod() {
System.out.println("Child method");
}
}
public class Main {
public static void main(String[] args) {
Child child = new Child();
child.childMethod(); // 输出: Child method
child.parentMethod(); // 输出: Parent method
child.accessGrandparentMethod(); // 输出: Grandparent method
}
}
在上述示例中,`Child` 类通过继承和调用父类的方法,间接访问了 `Grandparent` 类中的成员方法 `grandparentMethod()`。
查看其它两个剩余回答