Ejemplo de herencia en Java
Cuando considere utilizar la herencia, pregúntese si la subclase es realmente una versión más especializada de la superclase. En este caso, un coche es un tipo de vehículo, por lo que la relación de herencia tiene sentido.
Cuándo utilizar la composición en JavaEn la programación orientada a objetos, podemos utilizar la composición en los casos en que un objeto “tiene” (o es parte de) otro objeto. Algunos ejemplos serían:Para entender mejor este tipo de relación, consideremos la composición de una Casa:
En este caso, sabemos que una casa tiene un salón y un dormitorio, por lo que podemos utilizar los objetos Dormitorio y Salón en la composición de una Casa. Herencia frente a composición: Dos ejemplosConsidere el siguiente código. ¿Es un buen ejemplo de herencia?
En este caso, la respuesta es no. La clase hija hereda muchos métodos que nunca utilizará, lo que da lugar a un código estrechamente acoplado que es confuso y difícil de mantener. Si te fijas bien, también está claro que este código no pasa la prueba de “es un”.Ahora vamos a intentar el mismo ejemplo utilizando la composición:
Herencia java deutsch
Java soporta la reutilización de clases a través de la herencia y la composición. Este tutorial en dos partes te enseña a utilizar la herencia en tus programas Java. En la Parte 1 aprenderás a utilizar la palabra clave extends para derivar una clase hija de una clase padre, invocar constructores y métodos de la clase padre y anular métodos. En la Parte 2, conocerás java.lang.Object, que es la superclase de Java de la que heredan todas las demás clases.Para completar tu aprendizaje sobre la herencia, asegúrate de consultar mi consejo de Java que explica cuándo utilizar la composición frente a la herencia. Aprenderá por qué la composición es un complemento importante de la herencia y cómo utilizarla para evitar problemas de encapsulación en sus programas Java. descargar
Herencia en Java: Dos ejemplosLa herencia es un constructo de programación que los desarrolladores de software utilizan para establecer relaciones de tipo is-a entre categorías. La herencia nos permite derivar categorías más específicas a partir de otras más genéricas. La categoría más específica es una clase de la categoría más genérica. Por ejemplo, una cuenta corriente es un tipo de cuenta en la que se pueden hacer ingresos y reintegros. Del mismo modo, un camión es un tipo de vehículo utilizado para transportar objetos grandes.
Constructor de subclase Java
La herencia es un tema importante en la programación orientada a objetos. Para entender la herencia, es necesario entender lo que es una subclase. Un rectángulo tiene una longitud y una anchura y un cuadrado también tiene una longitud y una anchura. Sabemos que un cuadrado es un rectángulo que tiene la misma longitud y anchura.
Tomemos otros ejemplos de subclases. Una clase “Vehículo” puede tener como subclases “Coche” y “Bicicleta”. Una clase “Pájaro” puede tener como subclases “Gorrión”, “Cuervo” y “Loro”. Una subclase también se llama clase hija y una clase de la que se hace una subclase se llama superclase o clase padre. El proceso de creación de una subclase de una clase se llama herencia. Así, en el ejemplo Cuadrado-Rectángulo, Rectángulo es la superclase y Cuadrado es la subclase.
Una subclase debe crearse de forma que siga la relación “es-una” con su superclase. La creación de subclases nos ayuda a entender mejor la relación entre las clases y hace que la estructura de nuestro programa sea más organizada.
Superconstructor Java
En un contexto de ingeniería de software, la herencia describe una relación entre clases que facilita el intercambio de código. Una clase se convierte en una subclase de otra clase conocida como superclase. La subclase puede heredar la funcionalidad de la superclase.
Suponga que tiene una clase que modela una bicicleta. Cualquier moto, ya sea una motocicleta o una bicicleta, puede acelerar y desacelerar. Por lo tanto, no es necesario repetir el código en las clases que representan a las motos y a las bicicletas. En su lugar, pueden heredar esta funcionalidad de Bike. Pero sólo una motocicleta tiene un motor. No tiene sentido definir la funcionalidad relacionada con el motor en la clase Bike.
Ten en cuenta que el compilador de Java nos exige que definamos un constructor personalizado para la subclase si la superclase tiene un constructor personalizado. En el constructor de la subclase, estamos obligados a llamar al constructor de la superclase utilizando la palabra clave “super”.
La clase Moto hereda todos los campos y métodos públicos y protegidos de la clase Moto. Esto significa que podemos llamar al método público getGears en una instancia de Motorbike y ésta llamará al método “getGears” de la clase Bike.