Depth of Inheritance

Inheritance is good because you reuse code for objects that are very similar in functionality and structure all of them in a similar way.

There can also be too much, however. The deeper you extend a class, the more complex it becomes because you have increasingly more parents you depend on. And if one of those change, so do the children, which makes these classes less stable.

In addition to that, every class likely adds some of their own methods. The deeper you nest, the more methods you inherit from all the ancestors. And more code = a higher likelihood of errors.