La herencia es uno de los conceptos más valiosos de la programación orientada a objetos. Es un modo de compartir y reutilizar código ensamblando atributos de comportamiento agrupado en "clases", las cuales tienen una relación de pelés "classes", qui peuvent être basées sur des classes créées precedencia. Pero abusar de este concepto, creando un árbol de herencia profundo puede conducir a código demasiado complejo y difícil de mantener.
La mayoría de veces, un árbol de herencia demasiado profundo conlleva un mal diseño en el que se ha aplicado sistemáticamente la herencia cuando en muchas ocasiones la composición de objetos hubiese sido más conveniente.