Polimorfismo in Java | Aulab

GUIDE PER ASPIRANTI PROGRAMMATORI

Polimorfismo in Java

Il polimorfismo, che letteralmente significa “molte forme”, è la capacità di un oggetto di assumere molte forme diverse. In OOP, si riferisce alla capacità di una classe di fornire diverse implementazioni di metodi che sono definiti in una classe base o in un’interfaccia.   Ci sono due tipi principali di polimorfismo   Polimorfismo di Overloading:…

Lezione 26 / 47
Enza Neri
Immagine di copertina

Vuoi avviare una nuova carriera o fare un upgrade?

Trova il corso Digital & Tech più adatto a te nel nostro catalogo!

Il polimorfismo, che letteralmente significa “molte forme”, è la capacità di un oggetto di assumere molte forme diverse. In OOP, si riferisce alla capacità di una classe di fornire diverse implementazioni di metodi che sono definiti in una classe base o in un’interfaccia.

Ci sono due tipi principali di polimorfismo

  • Polimorfismo di Overloading: Si verifica quando due o più metodi nella stessa classe hanno lo stesso nome ma parametri diversi.
  • Polimorfismo di Overriding: Si verifica quando una sottoclasse fornisce una specifica implementazione di un metodo che è già fornito dalla sua classe base.

Esempio per polimorfismo di Overloading

public class Animale {
    public void faiRumore() {
        System.out.println("Questo animale fa un suono.");
    }

    public void faiRumore(String suono) {
        System.out.println("Questo animale fa: " + suono);
    }
}

In questo caso, la classe Animale ha due metodi faiRumore(), uno senza parametri e l’altro con un parametro String.

Esempio per polimorfismo di Overriding

Partiamo dalla classe base ‘Animale’

public class Animale {
    public void faiRumore() {
        System.out.println("Questo animale fa un suono.");
    }
}

Sottoclassi ‘Cane’ e ‘Gatto’

public class Cane extends Animale {
    @Override
    public void faiRumore() {
        System.out.println("Il cane fa: Bau Bau!");
    }
}

public class Gatto extends Animale {
    @Override
    public void faiRumore() {
        System.out.println("Il gatto fa: Miao Miao!");
    }
}

Ora creiamo istanze di Cane e Gatto e le usiamo polimorficamente come Animale.

public class TestPolimorfismo {
    public static void main(String[] args) {
        Animale animale1 = new Cane();
        Animale animale2 = new Gatto();

        animale1.faiRumore(); // Stampa: Il cane fa: Bau Bau!
        animale2.faiRumore(); // Stampa: Il gatto fa: Miao Miao!
    }
}

In questo esempio, anche se animale1 e animale2 sono di tipo Animale, il metodo faiRumore() che viene chiamato è quello definito nella classe dell’oggetto effettivo (Cane o Gatto), non quello nella classe Animale. 

Sei indeciso sul percorso? 💭

Parliamone! Scrivici su Whatsapp e risponderemo a tutte le tue domande per capire quale dei nostri corsi è il più adatto alle tue esigenze.

Oppure chiamaci al 800 128 626