Junior
Kada metodas laikomas perrašytu (overriding)?
sobes.tech AI
Atsakymas iš AI
Objekto orientuotame programavime metodas laikomas perrašytu (overriding), kai:
- Jis apibrėžtas pogrupyje su tuo pačiu pavadinimu, grąžinimo tipu ir parametrų sąrašu (parašu), kaip ir tėvų klasės metode.
- Tėvų klasės metodas nėra
private. - Pogrupio metodas neturi griežtesnio prieigos modifikatoriaus nei tėvų klasės metodas.
- Esant išimčių atvejams, perrašytas metodas negali deklaruoti patikrintų išimčių ([checked exceptions]), kurios yra bendresnės nei tos, kurios deklaruotos perrašomame metode.
Kviečiant perrašytą metodą iš pogrupio objekto, vykdoma pogrupio metodo versija. Tai pavyzdys vykdymo metu vykstančio polimorfizmo.
Pavyzdys Java kalba:
// java
class Animal {
public void makeSound() {
System.out.println("Bendra gyvūno garsas");
}
}
class Dog extends Animal {
@Override // @Override anotuacija patvirtina, kad metodas perrašytas
public void makeSound() {
System.out.println("Au au");
}
}
class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Miau");
}
}