Класс наследует метод, который не должен реализовывать?
Такая ситуация, пусть есть дерево классов, от родителя унаследованы наследники. В какой-то момент времени в класс родителя добавляют новый метод. Теперь наследники автоматически должны его переопределить для себя. А что если для какого-то наследника такой метод не имеет смысла? Возбуждать исключение? Ничего не делать? Или может быть перепроектировать систему классов, чтобы такой ситуации не было? Как обычно поступают?
Это нарушение принципа разделения интерфейса.
Насколько оно существенно в вашем конкретном случае можете решить только вы, но в целом то, что вам приходится ломать SOLID, говорит об ошибках дизайна.
По-моему вам нужно прочесть про паттерны проектирования.
Если родительский класс абстрактный и метод тоже, то нужно обязательно перегрузить метод в наследниках, иначе можно в родителей поставить заглушку, а в остальных переопределять, тогда в некоторых наследниках можно опускать перегрузку.
Нет, вопрос не в этом. Пусть класс-родитель абстрактный, от него унаследовано много наследников - реальных классов. В один момент в интерфейс абстрактного класса добавляют новый метод. Пусть почти все наследники реализовывают его у себя, а для некоторых наследников - этот метод не имеет смысла вообще. Проще говоря вся система абстракций ломается. Можно закрыть на это глаза и например никогда не вызывать этот метод у наследников не реализующих его, а если вызывать - то например возбуждать исключение, или ничего не делать, или еще что. Я так понимаю, что лучшее решение в плане - "чтобы все было как надо" - реализовывать новую систему абстракций, где такой ситуации не возникнет, но на практике наверняка так делать не всегда получится, поэтому такой вопрос возник, как обычно поступают.
Alksar: в каком-то паттерне рассматривается именно данная проблема, вроде паттерн СТРАТЕГИЯ, если не ошибаюсь, прочтите, может поможет.
А так все зависит от вас, вы можете в наследниках поставить заглушку, либо выбросить исключение и т.д. но , конечно, лучше правильно все реализовать