Фон:
Как программист на Java, я широко наследую (а скорее: реализую) от интерфейсов, а иногда создаю абстрактные базовые классы. Однако я никогда не чувствовал необходимости подкласса конкретного (не абстрактного) класса (в тех случаях, когда я это делал, позже выяснилось, что другое решение, такое как delegation было бы лучше).
Итак, теперь я начинаю чувствовать, что практически нет ситуации, когда унаследовать от конкретного класса. Во-первых, для нетривиальных классов почти невозможно удовлетворить принцип подстановки "nofollow noreferrer" > . также многие другие questions, похоже, отражают аналогичное мнение.
Итак, мой вопрос:
В какой ситуации (если есть) действительно ли имеет смысл наследовать от конкретного класса? Можете ли вы дать конкретный, реальный пример класса, который наследуется от другого конкретного класса, где вы чувствуете, что это лучший дизайн с учетом ограничений? Меня особенно интересуют примеры, которые удовлетворяют LSP (или примеры, где выполнение LSP кажется несущественным).
У меня в основном есть Java-фона, но меня интересуют примеры с любого языка.