Junior — Middle
Si può dire che l'ereditarietà favorisca la realizzazione del polimorfismo nella programmazione orientata agli oggetti?
sobes.tech AI
Risposta dell'AI
Sì, l'ereditarietà è uno dei meccanismi chiave che contribuiscono all'implementazione del polimorfismo nella programmazione orientata agli oggetti. Il polimorfismo consente agli oggetti di diverse classi di essere trattati tramite un'interfaccia comune, e l'ereditarietà permette di creare gerarchie di classi, dove le sottoclassi possono sovrascrivere i metodi della classe base.
Ad esempio, se c'è una classe base Animale con un metodo fareSuono(), e le sottoclassi Cane e Gatto sovrascrivono questo metodo, allora si può lavorare con oggetti di queste classi tramite un riferimento alla classe base e chiamare il metodo fareSuono(), ottenendo comportamenti diversi:
class Animale {
void fareSuono() {
System.out.println("Un suono");
}
}
class Cane extends Animale {
@Override
void fareSuono() {
System.out.println("Abbaio");
}
}
class Gatto extends Animale {
@Override
void fareSuono() {
System.out.println("Miao");
}
}
// Uso
Animale a = new Cane();
a.fareSuono(); // Stampa "Abbaio"