Подтвердить что ты не робот

Как заставить метод быть переопределенным в java?

Мне нужно создать много очень похожих классов, у которых есть только один метод. Поэтому я решил, что создание абстрактного класса было бы хорошим способом достичь этого. Но метод, который я хочу переопределить (скажем, метод foo()), не имеет поведения по умолчанию. Я не хочу сохранять реализацию по умолчанию, заставляя все расширяющиеся классы реализовать этот метод. Как это сделать?

4b9b3361

Ответ 1

В базовом классе вам нужен абстрактный метод:

public abstract class BaseClass {
    public abstract void foo();
}

Таким образом, вы не указываете поведение по умолчанию и, вы вынуждаете не-абстрактные классы наследовать от BaseClass, чтобы указать реализацию для foo.

Ответ 3

Просто сделайте метод абстрактным.

Это заставит все подклассы реализовать его, даже если он реализован в суперклассе абстрактного класса.

public abstract void foo();

Ответ 4

Если у вас есть абстрактный класс, тогда сделайте свой метод (пусть также foo abstract)

public abstract void foo();

Затем все подклассы должны будут переопределить foo.

Ответ 5

Сделайте этот метод abstract.