Jerarquia de clases java

Jerarquía de paquetes Java

Los tutoriales de Java se han escrito para el JDK 8. Los ejemplos y las prácticas que se describen en esta página no aprovechan las mejoras introducidas en versiones posteriores y pueden utilizar tecnología que ya no está disponible.Consulte los cambios en el lenguaje de Java para ver un resumen de las características actualizadas del lenguaje en Java SE 9 y las versiones posteriores.Consulte las notas de la versión del JDK para obtener información sobre las nuevas características, las mejoras y las opciones eliminadas o obsoletas de todas las versiones del JDK.

Definiciones:  Una clase derivada de otra clase se denomina subclase (también clase derivada, clase extendida o clase hija). La clase de la que deriva la subclase se llama superclase (también clase base o clase padre).

Excepto Object, que no tiene superclase, cada clase tiene una y sólo una superclase directa (herencia única). En ausencia de otra superclase explícita, toda clase es implícitamente una subclase de Object.

Las clases pueden derivar de clases que derivan de clases que derivan de clases, y así sucesivamente, y en última instancia derivan de la clase superior, Object. Se dice que una clase así desciende de todas las clases de la cadena de herencia que se remonta a Object.

Jerarquía de colecciones en java

Ahora el problema es que necesitamos extender el modelo y hacer una jerarquía, ya que el Passenger será un modelo genérico de Passenger, que contendrá campos y funciones comunes, los nuevos modelos AirPassenger y SeaPassenger lo extenderán:

El enfoque que acabe eligiendo dependerá de muchos factores, en gran medida de cómo y dónde se utilice su código. Si todos los usos de esta clase son accesibles para usted, le desaconsejaría su solución propuesta – una jerarquía de herencia adecuada ayudaría a mantener su código organizado y haría posible ampliar fácilmente su programa en el futuro. Muchos IDEs (por ejemplo, IntelliJ) ofrecen una gran funcionalidad para la refactorización inteligente de su código y la extracción a nuevas clases, que hará casi todo el trabajo de forma automática y asegurar que el código sigue funcionando como se pretende.

Si es posible, tu situación es un caso clásico para el uso de una clase padre abstracta. Dado que no existe tal cosa como un «pasajero general», un diseño más correcto para su jerarquía sería declarar Pasajero como una clase abstracta. De esta manera no se pueden crear instancias de Passenger directamente, pero la clase en sí puede contener implementaciones que las clases que heredan pueden utilizar o anular según sea necesario.

Generador de diagramas de jerarquía de clases Java

Los tutoriales de Java han sido escritos para el JDK 8. Los ejemplos y las prácticas que se describen en esta página no aprovechan las mejoras introducidas en versiones posteriores y pueden utilizar tecnología que ya no está disponible.Consulte los cambios en el lenguaje Java para obtener un resumen de las características actualizadas del lenguaje en Java SE 9 y las versiones posteriores.Consulte las notas de la versión del JDK para obtener información sobre las nuevas características, las mejoras y las opciones eliminadas o obsoletas de todas las versiones del JDK.

Definiciones:  Una clase derivada de otra clase se denomina subclase (también clase derivada, clase extendida o clase hija). La clase de la que deriva la subclase se llama superclase (también clase base o clase padre).

Excepto Object, que no tiene superclase, cada clase tiene una y sólo una superclase directa (herencia única). En ausencia de otra superclase explícita, toda clase es implícitamente una subclase de Object.

Las clases pueden derivar de clases que derivan de clases que derivan de clases, y así sucesivamente, y en última instancia derivan de la clase superior, Object. Se dice que una clase así desciende de todas las clases de la cadena de herencia que se remonta a Object.

Java extiende la clase

Una jerarquía de clases o árbol de herencia en informática es una clasificación de tipos de objetos, que denota que los objetos son instancias de clases (la clase es como un plano, el objeto es lo que se construye a partir de ese plano) interrelacionando las distintas clases mediante relaciones como «hereda», «extiende», «es una abstracción de», «una definición de interfaz»[1] En la programación orientada a objetos, una clase es una plantilla que define el estado y el comportamiento común a los objetos de un determinado tipo. Una clase puede definirse en términos de otras clases[1].

Las relaciones se especifican en la ciencia del diseño orientado a objetos y los estándares de interfaz de objetos definidos por el uso popular, los diseñadores de lenguajes (Java, C++, Smalltalk, Visual Prolog) y los comités de estándares para el diseño de software como el Object Management Group.

La jerarquía de clases puede ser tan profunda como sea necesario. Las variables de instancia y los métodos se heredan a lo largo de los niveles y pueden redefinirse según los requisitos de una subclase. En general, cuanto más abajo en la jerarquía aparece una clase, más especializado es su comportamiento. Cuando se envía un mensaje a un objeto, se pasa hacia arriba en el árbol de herencia empezando por la clase del objeto receptor hasta que se encuentra una definición para el método. Este proceso se denomina upcasting.