Sobes.tech
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"