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

class Square extends Rectangle {
void setWidth(int w) { throw new UnsupportedOperationException(); }
void setHeight(int h) { throw new UnsupportedOperationException(); }
}##Причины проблемы
Кто-то создал наследование между классами только из побуждений повторного использования кода, находящегося в суперклассе. При этом суперкласс и подкласс могут являться совершенно различными сущностями.

##Лечение
##Результат
- Улучшает понимание и организацию кода. Теперь вы не будете тратить время на догадки о том, почему класс
Стулунаследован от классаЖивотное(несмотря на то, что оба имеют четыре ноги).