Если Super
необходимо убедиться, что printThree()
не переопределено, этот метод должен быть объявлен как final
. Или же метод переопределения в Test
может решить вызвать метод переопределения, если он выберет:
@Override
void printThree() { super.printThree(); }
Если базовый класс не помечает метод как final
, он отказывается от права переопределять производные классы и делать то, что им нравится.