Junior
Kedy sa metóda považuje za prepísanú (overriding)?
sobes.tech AI
Odpoveď od AI
Metóda sa považuje za prepísanú (overriding) v objektovo orientovanom programovaní, keď:
- Je definovaná v podtriede so rovnakým názvom, typom návratu a zoznamom parametrov (podpisom) ako metóda v nadtriede.
- Metóda nadtriedy nie je
private. - Metóda v podtriede nemá prísnejší modifikátor prístupu ako metóda v nadtriede.
- V prípade výnimiek, prepísaná metóda nemôže deklarovať kontrolované výnimky ([checked exceptions]) ktoré sú všeobecnejšie ako tie deklarované v prepísanej metóde.
Pri volaní prepísanej metódy na objekte podtriedy, sa vykoná verzia metódy z podtriedy. Toto je príklad polymorfizmu počas behu.
Príklad v Jave:
// java
class Animal {
public void makeSound() {
System.out.println("Všeobecný zvuk zvieraťa");
}
}
class Dog extends Animal {
@Override // Anotácia @Override potvrdzuje, že metóda bola prepísaná
public void makeSound() {
System.out.println("Haf haf");
}
}
class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Mňau");
}
}