Junior
¿Qué son la herencia y el polimorfismo en los tipos de datos referenciales?
sobes.tech AI
Respuesta de la IA
La herencia es un mecanismo que permite a una clase (clase hija, clase derivada) heredar propiedades y comportamientos de otra clase (clase base, clase padre). Esto favorece la reutilización del código y la creación de jerarquías de clases.
El polimorfismo es la capacidad de objetos de diferentes clases para responder de manera diferente a un mismo mensaje (llamada a método), dependiendo de su tipo concreto. En el contexto de la herencia, esto a menudo se manifiesta mediante la sobrescritura de métodos de la clase base en la clase derivada.
Ejemplo (Java):
// Clase base
class Animal {
public void makeSound() {
System.out.println("El animal hace un sonido");
}
}
// Clase derivada
class Dog extends Animal {
@Override // Sobrescritura del método
public void makeSound() {
System.out.println("¡Guau!");
}
}
// Clase derivada
class Cat extends Animal {
@Override // Sobrescritura del método
public void makeSound() {
System.out.println("¡Miau!");
}
}
class Main {
public static void main(String[] args) {
Animal myDog = new Dog(); // Objeto Dog, pero referencia de tipo Animal
Animal myCat = new Cat(); // Objeto Cat, pero referencia de tipo Animal
myDog.makeSound(); // Se llama al método de Dog
myCat.makeSound(); // Se llama al método de Cat
}
}
En este ejemplo:
- Herencia: Las clases
DogyCatheredan deAnimal. - Polimorfismo: Las variables
myDogymyCathacen referencia a objetosDogyCatrespectivamente, aunque tienen tipoAnimal. Al llamar amakeSound(), se ejecuta el método del objeto, no el tipo de la referencia.