I build a class Tool. I inherit from Tool when I make Hammer, Wrench, and Screwdriver.
I inherit from Hammer when I make Ball-Peen, Claw, and Sledge.
If suddenly I make a driveToGroceryStore() method for Tool, it is because I am doing something wrong, not because inheritance is bad.
Don’t Baby.throwOutWith(bathwater The);