У меня есть класс, который является абстрактным с именем MyAbstractClass.частичная реализация абстрактного метода абстрактного класса
У меня есть 5 различных классов, которые расширяют его: классы A, B, E ..
Мне нужно добавить метод Foo() в классе MyAbstractClass но только А, В и C должен реализовать его, тогда как D и E его никогда не потребуется. (поток программы туда не достанется)
Что было бы хорошей практикой в Java для достижения такого поведения?
Должен ли я использовать интерфейс?
Должен ли я добавить еще один слой наследования, чтобы два отличались между ними и добавляли foo только в средний слой?
Спасибо за любой совет.
Не существует подобного решения с использованием интерфейса, который реализует только A, B и C (например, «Интерфейс Fooable») независимо от абстрактного класса? – yuz
Я бы добавил возможность переключения на интерфейсы, возможно, с реализацией по умолчанию (если Java 8 или новее, и это «без апатии»). – Eiko