在Java中,可以使用super关键字调用父类的方法。但是,如果要调用父类的父类的方法,即调用超级父类的方法,就需要使用更多的技巧。

假设有一个类层次结构:GrandParentClass是超级父类,ParentClass是GrandParentClass的子类,ChildClass是ParentClass的子类。现在我们想在ChildClass中调用GrandParentClass的方法。

首先,我们需要确保GrandParentClass的方法是可见的,并且在ChildClass中具有可访问性。如果GrandParentClass的方法是私有的,那么它将无法在ChildClass中被调用。因此,我们需要将方法定义为protected或public。

public class GrandParentClass {
    protected void grandParentMethod() {
        System.out.println("调用了超级父类的方法");
    }
}

public class ParentClass extends GrandParentClass {
    // 父类的方法已经在子类中可见,不需要任何特殊操作。
}

public class ChildClass extends ParentClass {
    public void childMethod() {
        // 调用父类的方法
        super.grandParentMethod();
    }
}

public class Main {
    public static void main(String[] args) {
        ChildClass child = new ChildClass();
        child.childMethod();
    }
}

在上面的示例中,我们创建了三个类:GrandParentClass,ParentClass和ChildClass。ChildClass中的childMethod()方法使用super关键字调用了父类的grandParentMethod()方法。

当我们运行Main类时,输出将是:"调用了超级父类的方法",这表明ChildClass成功调用了GrandParentClass的方法。

需要注意的是,如果ParentClass覆盖了GrandParentClass的方法,那么ChildClass将无法直接调用GrandParentClass的方法。在这种情况下,我们可以使用super关键字来调用ParentClass的方法,然后在ParentClass中再次调用GrandParentClass的方法。

public class GrandParentClass {
    protected void grandParentMethod() {
        System.out.println("调用了超级父类的方法");
    }
}

public class ParentClass extends GrandParentClass {
    @Override
    protected void grandParentMethod() {
        System.out.println("调用了父类的方法");
        super.grandParentMethod();
    }
}

public class ChildClass extends ParentClass {
    public void childMethod() {
        // 调用父类的方法,间接调用了超级父类的方法
        super.grandParentMethod();
    }
}

public class Main {
    public static void main(String[] args) {
        ChildClass child = new ChildClass();
        child.childMethod();
    }
}

在上面的示例中,ParentClass覆盖了GrandParentClass的grandParentMethod()方法,并在其中调用了super.grandParentMethod()来间接调用GrandParentClass的方法。然后,ChildClass使用super关键字调用了ParentClass的方法,最终成功调用了GrandParentClass的方法。

总结:要调用Java中父类的父类的方法,可以使用super关键字来直接调用父类的方法,或者通过间接调用覆盖方法的父类来调用超级父类的方法。