Call 'grand' parent function from child class in multi-level inheritance

inheritance, java, superclass

Solution

You could specify method for accessing parent's value like this:

public class GrandParent
{
    public void walk()
    {
        ...
    }
}

public class Parent
{
    public void walk()
    {
        ...
    }

    public void grandParentWalk()
    {
        super.walk();
    }
}

public class Child
{
    public void walk()
    {
        grandParentWalk();
    }
}

Similar questions:

- Java: How do you access a parent class method two levels down?

- Why is super.super.method(); not allowed in Java?

Problem

``` public class GrandParent { public void walk() { ... } } public class Parent { public void walk() { ... } } public class Child { public void walk() { // Here in some cases I want to use walk method of GrandParent class } } ``` Now in Child.walk(), I want to use GrandParent.walk() only in some cases. How can I do that? Since super.walk() will always use Parent.walk(). NOTE: (Please note that this is simplified example of a complex scenario) NOTE2: Please only tell if there is a standard procedure of doing that. I have used a flag in parent class, which the child sets if it wants to use the method of GrandParent. But this sequence becomes very complex.

Original source

Related problems