Junior
Quando un metodo è considerato sovrascritto (overriding)?
sobes.tech AI
Risposta dell'AI
Il metodo è considerato sovrascritto (overriding) nella programmazione orientata agli oggetti quando:
- È definito in una sottoclasse con lo stesso nome, tipo di ritorno e lista di parametri (firma) rispetto al metodo nella superclasse.
- Il metodo della superclasse non è
private. - Il metodo nella sottoclasse non ha un modificatore di accesso più restrittivo rispetto al metodo nella superclasse.
- In caso di eccezioni, il metodo sovrascritto non può dichiarare eccezioni controllate ([checked exceptions]) più generali di quelle dichiarate nel metodo sovrascritto.
Quando si chiama il metodo sovrascritto su un oggetto della sottoclasse, viene eseguita la versione del metodo della sottoclasse. Questo è un esempio di polimorfismo in fase di esecuzione.
Esempio in Java:
// java
class Animal {
public void makeSound() {
System.out.println("Suono generico dell'animale");
}
}
class Dog extends Animal {
@Override // L'annotazione @Override conferma che il metodo è stato sovrascritto
public void makeSound() {
System.out.println("Bau bau");
}
}
class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Miao");
}
}