Как вызвать метод надкласса надкласса?
Метод 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();
}
}