Junior
Kdy je metoda považována za přepsanou (overriding)?
sobes.tech AI
Odpověď od AI
Metoda se považuje za přepsanou (overriding) v objektově orientovaném programování, když:
- Je definována v podtřídě se stejným názvem, typem návratu a seznamem parametrů (signaturou) jako metoda v nadtřídě.
- Metoda nadtřídy není
private. - Metoda v podtřídě nemá přísnější přístupový modifikátor než metoda v nadtřídě.
- V případě výjimek, přepsaná metoda nemůže deklarovat kontrolované výjimky ([checked exceptions]), které jsou obecnější než ty deklarované v přepisované metodě.
Při volání přepsané metody na objektu podtřídy se vykoná verze metody z podtřídy. To je příklad polymorfismu za běhu.
Příklad v Java:
// java
class Animal {
public void makeSound() {
System.out.println("Obecný zvuk zvířete");
}
}
class Dog extends Animal {
@Override // Anotace @Override potvrzuje, že metoda je přepsána
public void makeSound() {
System.out.println("Haf haf");
}
}
class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Mňau");
}
}