In java, what is a good way to design around a subclass that reduces the functionality of the superclass?
For example, consider the class "Man", that has the function "See" and the subclass "BlindMan" that shouldn't have that function, but should have everything else that "Man" has.
The only solution I can come up with is having an abstract class "Man", and two subclasses "SeeingMan" and "BlindMan", with SeeinMan adding a function "See".
However the problem with this solution is that if I now want to add a "DeafMan" class - what does it extend? SeeingMan? and what if that man is both deaf and blind?