Sobes.tech
Junior — Middle

Come distinguere tra un sovraccarico di metodo e una sovrascrittura nella programmazione orientata agli oggetti?

sobes.tech AI

Risposta dell'AI

Sovraccarico di metodo (overloading) e overriding sono concetti diversi nella programmazione orientata agli oggetti:

  • Sovraccarico di metodo: si verifica quando ci sono più metodi con lo stesso nome in una classe, ma con parametri diversi (tipo, quantità). Questo permette di chiamare il metodo con argomenti diversi.

  • Overriding di metodo: avviene quando una sottoclasse fornisce la propria implementazione di un metodo già definito nella classe base con la stessa firma (nome e parametri). Questo permette di modificare il comportamento del metodo per la sottoclasse.

Esempio in Java:

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

    void sound(String mood) { // sovraccarico
        System.out.println("Suono quando " + mood);
    }
}

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

Qui, sound() nella classe Dog sovrascrive il metodo della classe base, e sound(String mood) è un sovraccarico dello stesso metodo nella classe Animal.