¿Qué es la jerarquía de clases?
Una jerarquía de clase, también llamada taxonomía de clase, es un grupo de clases relacionadas que están conectadas a través de la herencia para hacer cosas similares. La parte superior de la jerarquía puede ser una clase base única a partir de la cual se derivan todas las demás clases debajo de ella, o la jerarquía puede tener múltiples clases base cuyas funcionalidades se fusionan más tarde en una o más clases derivadas. Las relaciones entre las clases pueden ilustrarse como árboles, y cada árbol más pequeño dentro de la gran taxonomía también puede considerarse una jerarquía.
No todas las jerarquías de clase pueden tener múltiples raíces, y la estructura de cualquier jerarquía de clases depende en gran medida del lenguaje que está escrito. C ++ permite múltiples inherencias, tan complejas jerarquías se pueden construir con múltiples raíces y múltiples trees. Java®, por otro lado, se limita a una única herencia, por lo que sus relaciones de clase suelen ser más simples, construidas como árboles relativamente autónomos con una sola raíz. Interfaz Herencia Cy agregar cierta complejidad a una jerarquía de clase en Java®, pero las interfaces casi nunca se invocan en un marco tan complejo que sería como fusionar árboles juntos.
Los componentes de una jerarquía de clase pueden variar en el tipo y la función, siempre que las reglas del lenguaje siempre se sigan con respecto a la herencia. Las clases en una jerarquía pueden ser públicas, protegidas, abstractas, concretas o virtuales. Las interfaces, las funciones globales y los amigos también se pueden usar. 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 pueden usarse de muchas maneras para muchos fines.
No hay reglas difíciles sobre dónde se deben colocar tipos particulares de clases en una jerarquía. Cualquier clase puede ser cualquiera de los tipos mencionados anteriormente. En general, las últimas clases en la jerarquía que no han derivadoLas clases debajo de ellas deben ser públicas y concretas. Sin embargo, dado que también pueden existir jerarquías de clase puramente abstractas, esto es solo una regla general.
Aunque una jerarquía de clase puede ser una herramienta útil para organizar el código y encapsular la funcionalidad, puede haber momentos en que profundizar demasiado en una jerarquía realmente puede confundir el código, en lugar de aclararlo y hacer que sea más fácil de mantener. Construir una relación robusta entre muchas clases requiere una cierta cantidad de previsión; Si bien inicialmente podría ser más fácil dividir el código en muchas piezas pequeñas, esas piezas pequeñas pueden ser más difíciles de manejar más tarde. Cuando se construye correctamente, una jerarquía de clase ayuda tanto a los desarrolladores como a los usuarios a determinar cómo funcionan las clases. Si se construye sin mantenimiento y claridad en mente, los muchos niveles de herencia pueden ser confusos para mirar hacia atrás y comprender.