Junior
Qual è la differenza tra astrazione e polimorfismo?
sobes.tech AI
Risposta dell'AI
L'astrazione si concentra sulla nascosta dei dettagli di implementazione e sulla fornitura di una rappresentazione semplificata dell'oggetto. Il polimorfismo permette di trattare oggetti di diverse classi come oggetti di una classe base o interfaccia, eseguendo azioni specifiche per ogni oggetto.
| Caratteristica | Astrazione | Polimorfismo |
|---|---|---|
| Sostanza | Nascondere i dettagli, fornire una vista generale | La capacità di trattare oggetti di tipi diversi in modo uniforme |
| Obiettivo | Semplificazione, riduzione della complessità | Flessibilità, estensibilità, universalità del codice |
| Come si ottiene | Classi astratte, interfacce | Sovraccarico di metodi, overriding di metodi, interfacce |
| Esempio | Classe Auto senza dettagli del motore |
Metodo muoversi() in diverse classi (Auto, Camion) |
Esempio di astrazione (uso dell'astrazione):
interface Forma {
// Metodo astratto
double calcolaArea();
}
class Cerchio implements Forma {
private double raggio;
public Cerchio(double raggio) {
this.raggio = raggio;
}
@Override
public double calcolaArea() {
// I dettagli di implementazione sono nascosti dietro il metodo dell'interfaccia
return Math.PI * raggio * raggio;
}
}
Esempio di polimorfismo:
// Uso del polimorfismo
Forma miaForma = new Cerchio(5);
// Chiamata al metodo calcolaArea() tramite il riferimento del tipo base (interfaccia Forma)
// Verrà effettivamente eseguito il metodo calcolaArea() della classe Cerchio
double area = miaForma.calcolaArea();
System.out.println("Area: " + area);