Sobes.tech
Junior — Middle

Spiega il concetto di polimorfismo nella programmazione orientata agli oggetti e come viene implementato nel codice.

sobes.tech AI

Risposta dell'AI

Il polimorfismo nella programmazione orientata agli oggetti è la capacità degli oggetti di classi diverse di rispondere in modo diverso ai medesimi messaggi (chiamate di metodi). Questo permette di usare un'interfaccia unica per lavorare con diversi tipi di oggetti.

In Java, il polimorfismo si realizza attraverso l'ereditarietà e la sovrascrittura dei metodi. Ad esempio, una classe base dichiara un metodo, e le sottoclassi lo implementano a modo loro.

Esempio:

class Animal {
    void sound() {
        System.out.println("Un suono");
    }
}

class Dog extends Animal {
    @Override
    void sound() {
        System.out.println("Abbaio");
    }
}

class Cat extends Animal {
    @Override
    void sound() {
        System.out.println("Miagolio");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal a1 = new Dog();
        Animal a2 = new Cat();
        a1.sound(); // Stampa "Abbaio"
        a2.sound(); // Stampa "Miagolio"
    }
}

Qui, la variabile di tipo Animal può riferirsi a oggetti di diverse sottoclassi, e la chiamata al metodo sound() verrà eseguita in base al tipo reale dell'oggetto — questo è polimorfismo.