La jerarquía de raíz única , en la programación orientada a objetos , es una característica de la mayoría de los lenguajes de programación basados en POO (pero no de todos) . De hecho, en la mayoría de estos lenguajes, todas las clases heredan directa o indirectamente de una raíz única, normalmente con un nombre similar a Object; todas las clases forman entonces una jerarquía de herencia común.
Esta idea fue introducida por primera vez por Smalltalk y desde entonces se ha utilizado en la mayoría de los demás lenguajes orientados a objetos (especialmente Java y C# ).
Una excepción notable es C++ , donde (principalmente por compatibilidad con C y eficiencia) no hay una jerarquía de objetos única. Esta característica es especialmente útil para las bibliotecas de contenedores: solo necesitan permitir colocar un objeto en un contenedor para permitir que se coloquen objetos de cualquier clase en el contenedor. Los contenedores en C++ se han implementado con herencia múltiple , [1] y con la ayuda de la programación genérica basada en plantillas de Bjarne Stroustrup . [2] [3] Otros lenguajes orientados a objetos sin una jerarquía de raíz única incluyen Objective-C y PHP .