Junior
Mikor számít egy módszer felülírtnak (overriding)?
sobes.tech MI
Válasz az MI-től
Az objektumorientált programozásban a metódus akkor tekinthető felülírt (overriding), ha:
- Egy alosztályban van definiálva ugyanazzal a névvel, visszatérési típussal és paraméterlistával (szignatúrával), mint a szuperosztályban lévő metódus.
- A szuperosztálybeli metódus nem
private. - Az alosztálybeli metódus nem rendelkezik szigorúbb hozzáférési módosítóval, mint a szuperosztálybeli.
- Kivétel esetén a felülírt metódus nem deklarálhat ellenőrzött kivételt ([checked exception]), amely általánosabb, mint a felülírt metódusban deklarált kivétel.
A felülírt metódus hívásakor egy alosztály példányán a subclase-ből származó verzió fut le. Ez egy példája a futási időben történő polimorfizmusnak.
Java példa:
// java
class Animal {
public void makeSound() {
System.out.println("Általános állati hang");
}
}
class Dog extends Animal {
@Override // Az @Override annotáció megerősíti, hogy a metódus felülírásra került
public void makeSound() {
System.out.println("Vau vau");
}
}
class Cat extends Animal {
@Override
public void makeSound() {
System.out.println("Miau");
}
}