Junior
¿Cuál es la diferencia entre abstracción y polimorfismo?
sobes.tech AI
Respuesta de la IA
La abstracción se centra en ocultar los detalles de implementación y proporcionar una representación simplificada del objeto. El polimorfismo permite tratar objetos de diferentes clases como objetos de una clase base o interfaz común, realizando acciones específicas para cada objeto.
| Característica | Abstracción | Polimorfismo |
|---|---|---|
| Esencia | Ocultar detalles, ofrecer una vista general | La capacidad de tratar objetos de diferentes tipos de manera uniforme |
| Objetivo | Simplificación, reducción de complejidad | Flexibilidad, extensibilidad, universalidad del código |
| Cómo se logra | Clases abstractas, interfaces | Sobrecarga de métodos, sobrescritura de métodos, interfaces |
| Ejemplo | Clase Automóvil sin detalles del motor |
Método mover() en diferentes clases (Auto, Camión) |
Ejemplo de abstracción (uso de abstracción):
interface Forma {
// Método abstracto
double calcularÁrea();
}
class Círculo implements Forma {
private double radio;
public Círculo(double radio) {
this.radio = radio;
}
@Override
public double calcularÁrea() {
// Los detalles de implementación están ocultos tras el método de la interfaz
return Math.PI * radio * radio;
}
}
Ejemplo de polimorfismo:
// Uso del polimorfismo
Forma miForma = new Círculo(5);
// Llamada al método calcularÁrea() a través de la referencia del tipo base (interfaz Forma)
// En realidad se ejecutará el método calcularÁrea() de la clase Círculo
double área = miForma.calcularÁrea();
System.out.println("Área: " + área);