Any programmer who gets more complicated than that is just...
Well, that's just bollocks, really, and typical of something spoken by those who don't know any better.
I guess Abstraction is some other perverse thing that should be avoided? Right.
Obviously, in a lot of cases you will only want one or two levels of generalisation. But sometimes you need more...
Object
EventHandler
Window
Control
ControlWithItems
ComboBox
Why? Because each class looks after its own specific functionality, which is inherited by its children.
And this is the mind-blowing thing to grasp.... it does away with code-duplication. I know, isn't it amazing? Rather than have the same code copied all over the place doing essentially the same thing in different types, you can actually localise those bits of code and share them.
Next we'll be hearing that database normalization is for crazy people....