> You could say that I just did not do it right, but that is the problem. You need to know precisely what the future will want to do it right and that is never possible to know in advance.
Every time inheritance causes a headache, you can call it a misuse of inheritance, but that is only obvious after you have been to the future.
https://duckduckgo.com/?q=oop+inheritance+behavior
I doubt you would find a single result in the top 10 saying not to do this and many will seem to encourage it. One of the results says:
> Inheritance is frequently used to integrate your code with library code
A much younger version of myself said: Daemonizing should be a library function. Let’s use inheritance to do that.
Saying it is not really taught properly is avoiding the reality that you just can’t teach it properly. Knowing for certain when it will not cause problems requires knowing the future.
People use the wrong tool for the job, or use it incorrectly, and then blame the tool. It's like using a hammer to play drums, obliterating the drum set, then ranting against hammers.