13. Herencia y polimorfismo en Java

La programación orientada a objetos (POO) es un paradigma de programación que utiliza objetos y sus interacciones para diseñar y programar aplicaciones. Java es un lenguaje de programación que soporta totalmente la programación orientada a objetos y dos de sus conceptos fundamentales son la herencia y el polimorfismo. Estos conceptos permiten la creación de código más modular, flexible y reutilizable.

Herencia en Java

La herencia es un mecanismo mediante el cual una nueva clase, conocida como subclase, puede heredar campos y métodos de otra clase, llamada superclase. La herencia permite que las subclases tengan un punto de partida común, compartiendo características y comportamientos, evitando así la duplicación de código.

clase Vehículo { marca String protegida; bocina vacía pública () { System.out.println("¡Bip! ¡Bip!"); } } clase Coche extiende Vehículo { private int numeroDePortas; información de visualización pública vacía () { System.out.println("Marca: " + marca + ", Puertos: " + númeroDePortas); } }

En el ejemplo anterior, la clase Car hereda de la clase Vehicle. Esto significa que Car puede acceder al campo brand y al método horn() de la clase Vehicle. La palabra clave extends se utiliza para establecer esta relación de herencia en Java.

Polimorfismo en Java

El polimorfismo es la capacidad de un objeto de ser referenciado de múltiples maneras. Más específicamente, es la capacidad de un método para implementarse de varias maneras diferentes. En Java, el polimorfismo se puede lograr mediante el uso de métodos anulados y sobrecargados.

Un método anulado es aquel que se hereda de una superclase y se redefine en la subclase. Esto permite que la subclase proporcione una implementación específica para ese método. La anotación @Override se usa comúnmente para indicar que se está anulando un método.

clase Vehículo { bocina vacía pública () { System.out.println("¡Bip! ¡Bip!"); } } clase Coche extiende Vehículo { @Anular bocina vacía pública () { System.out.println("¡Toca la bocina! ¡Toca la bocina!"); } }

En el ejemplo anterior, la clase Car anula el método horn() de la clase Vehicle, proporcionando su propia implementación. p>

El polimorfismo también permite que un objeto de una subclase sea tratado como si fuera un objeto de su superclase. Esto es particularmente útil cuando se trata de colecciones de objetos que comparten una clase base común.

Vehículo miVehículo = coche nuevo(); miVehículo.bocina(); // Llama al método bocina() de la clase Car

Aquí, myVehicle es una referencia de tipo Vehicle, pero apunta a una instancia de Car. Cuando se llama al método horn(), se ejecuta la implementación anulada en Car.

Consideraciones importantes sobre herencia y polimorfismo

Aunque la herencia y el polimorfismo son poderosos, deben usarse con precaución. Una herencia excesiva o inapropiada puede generar una estructura de clases confusa y difícil de mantener. Es importante seguir el principio de "mínimo conocimiento" y exponer sólo lo necesario. Además, la composición a menudo puede ser una alternativa más flexible que la herencia.

Por otro lado, el polimorfismo, cuando se usa sabiamente, puede hacer que el código sea más genérico y reutilizable. Por ejemplo, una función que opera sobre objetos de tipo Vehicle puede funcionar con cualquier subclase de Vehicle, sin necesidad de conocer los detalles específicos de cada subclase.

Conclusión

La herencia y el polimorfismo son fundamentales en la programación orientada a objetos en Java. Permiten a los desarrolladores crear sistemas extensibles y reutilizables, reduciendo la redundancia de código y mejorando la mantenibilidad. Al mismo tiempo, es esencial utilizar estos conceptos cuidadosamente y comprender sus implicaciones para el diseño de software. Con práctica y experiencia, los programadores pueden dominar el uso eficaz de la herencia y el polimorfismo para crear aplicaciones Java sólidas y flexibles.

Ahora responde el ejercicio sobre el contenido:

¿Cuál de las siguientes afirmaciones sobre herencia y polimorfismo en Java es correcta?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Imagen del artículo Herencia y polimorfismo en Java: concepto de herencia

Siguiente página del libro electrónico gratuito:

85Herencia y polimorfismo en Java: concepto de herencia

6 minutos

¡Obtén tu certificado para este curso gratis! descargando la aplicación Cursa y leyendo el libro electrónico allí. ¡Disponible en Google Play o App Store!

Disponible en Google Play Disponible en App Store

+ 6,5 millones
estudiantes

Certificado gratuito y
válido con código QR

48 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo, audio y texto.