У меня возникла проблема с вызовом метода класса на втором уровне наследования из суперкласса. Сценарий этогоВызов метода под-подкласса
abstract class SuperClass
{
public void MethodOne()
{
MethodTwo();
}
public abstract void MethodTwo();
}
class Sub1 extends SuperClass
{
public void MethodTwo()
{
//code in sub1
}
}
class Sub2 extends SuperClass
{
public void MethodTwo()
{
//code in sub2
}
}
С ниже код я ожидаю MethodTwo() от SUB2 называться. Но метод от Sub1 получает вызов. Я что-то упускаю?
SuperClass anObj = new Sub2();
anObj.MethodOne();
Что такое init()? –
Если 'init()' вы имеете в виду 'MethodOne()', то должен был вызываться 'Sub2 # MethodTwo()'. Как вы (ошибочно) заметили, что был вызван метод из 'Sub1'? – sp00m
, который должен быть MethodOne(). Спасибо ... – Kannan