Sobes.tech
Junior

Wanneer wordt een methode als overschreven (overriding) beschouwd?

sobes.tech AI

Antwoord van AI

De methode wordt beschouwd als overschreven (overriding) in objectgeoriënteerd programmeren wanneer:

  1. Het is gedefinieerd in een subclass met dezelfde naam, returntype en parameterlijst (handtekening) als de methode in de superclass.
  2. De methode van de superclass is niet private.
  3. De methode in de subclass heeft geen restrictievere toegangsmodifier dan de methode in de superclass.
  4. In geval van uitzonderingen, mag de overschreven methode geen gecontroleerde uitzonderingen ([checked exceptions]) declareren die algemener zijn dan die gedeclareerd in de overschreven methode.

Bij het aanroepen van de overschreven methode op een object van de subclass, wordt de versie van de methode uit de subclass uitgevoerd. Dit is een voorbeeld van polymorfisme tijdens runtime.

Voorbeeld in Java:

// java

class Animal {
    public void makeSound() {
        System.out.println("Algemeen dierengeluid");
    }
}

class Dog extends Animal {
    @Override // De @Override annotatie bevestigt dat de methode overschreven is
    public void makeSound() {
        System.out.println("Waf waf");
    }
}

class Cat extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Miauw");
    }
}