Многоуровневое наследование: вызов метода только на ОДИН уровень выше от подкласса - PullRequest
0 голосов
/ 10 марта 2011

В основном у меня 3 класса

class abstract A{}
   protected aMethod(){}

class abstract B extends A{
   protected aMethod(){}
}

class C extends B{
  // How do I call B.aMethod() from here? As super.aMethod() 
  // would call A.aMethod()?
}

Смотрите код. Я хочу вызвать метод на один класс выше самого низкого уровня. Но вызов super.aMethod () вернул бы реализацию корневого класса?

РЕДАКТИРОВАТЬ: Оказывается, супер просто идет на один уровень выше, бог знает, что я пытался ... Ошибка новичка, извинения все!

Ответы [ 3 ]

2 голосов
/ 10 марта 2011

super.aMethod() будет делать именно то, что вы хотите.

0 голосов
/ 10 марта 2011
super.aMethod()

должно работать нормально, если B реализует метод.

Также, как примечание к вашему тегу, множественное наследование говорит о "расширении" более чем одного базового класса, например:

public C extends B, A { ... } // WRONG SYNTAX!

, который не поддерживается Java.

0 голосов
/ 10 марта 2011

На самом деле вызов super.aMethod () из C, должен вызывать aMethod () в B, а не в A.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...