Then what does it mean if "composition over inheritance" is also taught as a good practice in OO?
That's a rule-of-thumb to help beginners in making judgement calls. It doesn't mean inheritance should never be used.
True, but if the defining feature of something is a feature you should use sparingly, doesn't that mean other features are more definitive?
That's a rule-of-thumb to help beginners in making judgement calls. It doesn't mean inheritance should never be used.
True, but if the defining feature of something is a feature you should use sparingly, doesn't that mean other features are more definitive?