Как вызвать метод надкласса надкласса?

Метод show класса А переопределен в классе B и C Как вызвать метод класса А из класса C? не меняя класс B Думал,что это можно сделать с помощью super.super.show(),но нет

class A
{
    int a;
     A(int a)
    {
        this.a=a;
    }
     void show()
     {
         System.out.print(a);
     }
     
}
class B extends A
{   
    B(int b)
    {
    super(b);   
    }
    void show()
    {
        System.out.print(a+a);
    }
}
class C extends B
{   
    C(int c)
    {
    super(c);   
    }
    void show()
    {
        System.out.print(a+a+a);
    }
    void Sshow()
    {
        super.show();
    }
}```

Ответы (1 шт):

Автор решения: Bogdan Voinov

Тут несколько вариантов, 1 создать экземпляр класса A в классе C.

class C extends B
{   
    C(int c)
    {
    super(c);   
    }
    void Show(){
        A a = new A(1)// число на ваше усмотрение
        a.show();
    }
    void show()
    {
        System.out.print(a+a+a);
    }
    void Sshow()
    {
        super.show();
    }
}

2 это сделать так, как видимо хотели вы. Создать метод в классе B вызывающий нужный метод в классе A, и вызвать его в классе С.

    class A
{
    int a;
     A(int a)
    {
        this.a=a;
    }
     void show()
     {
         System.out.print(a);
     }
     
}
class B extends A
{   
    B(int b)
    {
    super(b);   
    }
    void show()
    {
        System.out.print(a+a);
    }
    void Sshow()
    {
        super.show();
    }
}
class C extends B
{   
    C(int c)
    {
    super(c);   
    }
    void show()
    {
        System.out.print(a+a+a);
    }
    void Sshow()
    {
        super.show();
    }
    void Show()
    {
        super.Sshow();
    }
}
→ Ссылка