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.