В java, что является хорошим способом разработки вокруг подкласса, который уменьшает функциональность суперкласса?
Например, рассмотрим класс "Человек" , который имеет функцию "См." и подкласс "BlindMan", который не должен иметь эту функцию, но должен иметь все остальное, что имеет "Человек" .
Единственное решение, которое я могу придумать, - это абстрактный класс "Человек" и два подкласса "SeeingMan" и "BlindMan", при этом SeeinMan добавляет функцию "См.".
Однако проблема с этим решением заключается в том, что если я хочу добавить класс DeafMan - что он расширяет? SeeingMan? и что, если этот человек является глухим и слепым?