Inheritance - is a bad idea

Object orientated programming was pushed heavily by the industry as being a way of solving a non problem of code reuse.

In practice inheritance is generally an awful way to arrange code.

The problem is that is hard to fully separate out concerns with inheritance. The problems an application needs to solve don’t clearly break down into well defined objects.

It’s notable that newer languages like GO which was developed by Google don’t even support the constructs required for object oriented programming.