абстрактные классы и интерфейсы лучшие практики в Java

Итак, у вас есть интерфейс и абстрактный класс, который реализует подмножество методов в интерфейсе. У вас также есть некоторые классы, которые наследуют абстрактный класс и дают реализации методов, которые абстрактный класс не дает.

Так какова лучшая практика здесь? Я говорю о таких вопросах, как:

1) Должен ли абстрактный класс реализовывать интерфейс или его дочерние классы? Должен ли каждый класс? Мне кажется, что просто абстрактный класс должен. Конечно, все классы могут реализовывать интерфейс, но это кажется излишним, потому что потомки абстрактного «наследуют» интерфейс, потому что они расширяют абстрактный класс.

2) Учитывая, что абстрактный класс реализует части интерфейса, должен ли он также объявлять абстрактные методы для методов, которые он не реализует? Мне кажется, что это правильно, но в некотором смысле это кажется излишним, потому что потомки абстрактного должны будут реализовать эти методы для компиляции.

Каковы ваши аргументы в пользу лучшей практики? Вопрос сводится к следующему: у нас есть интерфейс, который определяет то, что мы хотим, чтобы некоторые классы делали, у нас есть подмножество методов в интерфейсе, которые определяют общее поведение, и у нас есть несколько различных способов определить необычное поведение. Какой самый лучший способ выложить это?

Ответы на вопрос(5)

Ваш ответ на вопрос