Junior
Millal loetakse meetodit üle kirjutatuks (overriding)?
sobes.tech AI
Vastus AI-lt
Objektipõhises programmeerimises loetakse meetod üle kirjutatuks (overriding), kui:
- See on määratletud alamklassis sama nime, tagastustüübi ja parameetrite loendiga (allkirjaga) nagu superklassi meetod.
- Superklassi meetod ei ole
private. - Alamklassi meetodil ei ole rangemat juurdepääsukorraldust kui superklassi meetod.
- Juhtudel, kui on erandid, ei või üle kirjutatud meetod deklareerida kontrollitavaid erandeid ([checked exceptions]), mis on üldisemad kui deklareeritud erandid üle kirjutatud meetodis.
Kui kutsutakse üle kirjutatud meetodit alamklassi objektil, täidetakse alamklassi meetodi versioon. See on näide polümorfismist jooksuaeg.
Näide Java-s:
// java
class Animal {
public void makeSound() {
System.out.println("Üldine looma hääl");
}
}
class Dog extends Animal {
@Override // @Override annotatsioon kinnitab, et meetod on üle kirjutatud
public void makeSound() {
System.out.println("Haug haug");
}
}
class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Miau");
}
}