Sobes.tech
Junior

Quando un metodo è considerato sovrascritto (overriding)?

sobes.tech AI

Risposta dell'AI

Il metodo è considerato sovrascritto (overriding) nella programmazione orientata agli oggetti quando:

  1. È definito in una sottoclasse con lo stesso nome, tipo di ritorno e lista di parametri (firma) rispetto al metodo nella superclasse.
  2. Il metodo della superclasse non è private.
  3. Il metodo nella sottoclasse non ha un modificatore di accesso più restrittivo rispetto al metodo nella superclasse.
  4. 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");
    }
}