Junior
Mikor történik a metódus felülírása (overriding)?
sobes.tech MI
Válasz az MI-től
A metódus felülírása (overriding) akkor történik az öröklődési hierarchiában, amikor az alosztály saját megvalósítást ad egy olyan metódusnak, amely már definiálva van a szülőosztályban ugyanazzal a névvel, szignatúrával (a paraméterek típusának és számának egyezésével) és visszatérési típussal (vagy kovariáns típusú az objektum visszatérési típus esetén).
Fő jellemzők:
- Öröklődés: A felülírás csak öröklődés kontextusában lehetséges (szülő- és alosztályok).
- Szignatúra: Az alosztályban lévő metódusnak ugyanazzal a szignatúrával kell rendelkeznie (név, paraméterek száma és típusa), mint a szülőosztályban lévő metódusnak, és ugyanazzal a visszatérési típussal (vagy annak kovariáns altípusával).
- Hozzáférhetőség: A felülírt metódusnak elérhetőnek kell lennie az alosztály számára (általában
public,protected). - Polimorfizmus: A felülírás a futási idő polimorfizmusának alapja, lehetővé téve, hogy az alosztály objektumai saját módjukon reagáljanak a metódushívásra, még akkor is, ha szülőosztályra mutató hivatkozással hívják őket.
Példa (Java):
// Szülőosztály
class Animal {
// Metódus, amely felülíródik
public void makeSound() {
System.out.println("Állat hangot ad");
}
}
// Alosztály
class Dog extends Animal {
// A makeSound() metódus felülírása
@Override // Az @Override annotáció opcionális, de ajánlott
public void makeSound() {
System.out.println("Kutya ugat");
}
}
Használati példa:
// Dog objektum létrehozása
Animal myDog = new Dog();
// A metódus hívása. A Dog-ban felülírt verzió fog lefutni
myDog.makeSound(); // Kimenet: Kutya ugat
// Animal objektum létrehozása
Animal someAnimal = new Animal();
// A metódus hívása. Az Animal verzió fog lefutni
someAnimal.makeSound(); // Kimenet: Állat hangot ad