Significado | Concepto | Definición:

Una jerarquía de clases, también llamada taxonomía de clases, es un grupo de clases relacionadas que están conectadas por herencia para hacer cosas similares. La parte superior de la jerarquía puede ser una única clase base de la que se derivan todas las demás clases inferiores, o la jerarquía puede tener varias clases base cuyas funcionalidades se fusionan posteriormente en una o más clases derivadas. Las relaciones entre las clases se pueden ilustrar como árboles, y cada árbol más pequeño dentro de la taxonomía grande también se puede considerar una jerarquía.

C ++ permite la herencia múltiple, por lo que se pueden construir jerarquías complejas con múltiples raíces y múltiples árboles que se fusionan entre sí.

No todas las jerarquías de clases pueden tener múltiples raíces, y la estructura de cualquier jerarquía de clases depende en gran medida del lenguaje en el que está escrito. C ++ permite una herencia múltiple, por lo que se pueden construir jerarquías complejas con múltiples raíces y múltiples árboles que se fusionan entre sí. Java®, por otro lado, está limitado a la herencia única, por lo que sus relaciones de clase suelen ser más simples, construidas como árboles relativamente autónomos con una sola raíz. La herencia de interfaz puede agregar cierta complejidad a una jerarquía de clases en Java®, pero las interfaces casi nunca se invocan en un marco tan complejo que sería como fusionar árboles.

Los componentes de una jerarquía de clases pueden variar en tipo y función, siempre que se sigan siempre las reglas del lenguaje con respecto a la herencia. Las clases en una jerarquía pueden ser públicas, protegidas, abstractas, concretas o virtuales. También se pueden utilizar interfaces, funciones globales y amigos. Dependiendo del lenguaje informático, algunos de estos tipos pueden prestarse mejor a la herencia que otros. En general, las jerarquías son muy flexibles y se pueden usar de muchas formas para muchos propósitos.

No existen reglas estrictas sobre dónde se deben colocar tipos particulares de clases en una jerarquía. Cualquier clase puede ser concebiblemente cualquiera de los tipos mencionados anteriormente. En general, las últimas clases en la jerarquía que no tienen clases derivadas debajo de ellas deben ser públicas y concretas. Sin embargo, dado que también pueden existir jerarquías de clases puramente abstractas , esto es solo una regla de oro.

Aunque una jerarquía de clases puede ser una herramienta útil para organizar el código y encapsular la funcionalidad, puede haber ocasiones en las que ahondar demasiado en una jerarquía puede confundir el código, en lugar de aclararlo y facilitar su mantenimiento. Construir una relación sólida entre muchas clases requiere cierta cantidad de previsión; Si bien inicialmente puede ser más fácil dividir el código en muchas partes pequeñas, esas partes pequeñas pueden volverse más difíciles de manejar más adelante. Cuando se construye correctamente, una jerarquía de clases ayuda tanto a los desarrolladores como a los usuarios a determinar cómo funcionan las clases. Si se construye sin el mantenimiento y la claridad en mente, los muchos niveles de herencia pueden ser confusos para mirar hacia atrás y comprenderlos.