Обзор темы [Рефакторинг кода]

Отказ от наследства (Refused Bequest)

Подклассы получают от своих родителей множество великолепных подарков в виде наследуемых полей и методов, но выбирают для развлечений только часть из них.

Обычная история – иерархия неверна. В этом случае создается еще один подкласс суперкласса и используются Спускание метода и Спускание поля с тем расчетом, чтобы в суперклассе остались только общие члены.

Особый случай, когда подкласс не хочет поддерживать интерфейс суперкласса. Тогда надо применять Замену наследования делегированием.