Junior
Mikor történik a metódus felülírása (overriding) a programozásban?
sobes.tech MI
Válasz az MI-től
A metódus felülírása öröklés során történik, amikor egy leszármazott osztály saját megvalósítást ad egy már az ősosztályban definiált módszerhez. A módszer szignatúrájának (név, visszatérési típus és argumentumok száma/típusai) meg kell egyeznie az ősosztályban lévő módszerével. Ez lehetővé teszi a polimorfizmus működését: egy leszármazott osztály példánya, amit ősosztályként használnak, saját specifikus módszerhívását végzi.
Használati példák:
- Az örökölt viselkedés logikájának módosítása.
- Egy közös interfészhez tartozó, leszármazott osztályra jellemző megvalósítás biztosítása.
Főbb pontok:
- Szükség van -hoz--ként* (öröklés) kapcsolatra.
- A módszer szignatúrájának egyeznie kell.
- A hozzáférési módosító lehet ugyanaz vagy kevésbé szigorú, mint az ősosztály módszeréé.
finalvagystaticmódszerek felülírása nem lehetséges (a legtöbb nyelvben).
// Java példakód
class Animal {
public void makeSound() {
System.out.println("Általános állati hang");
}
}
class Dog extends Animal {
@Override // Annotáció a felülírás jelzésére
public void makeSound() {
System.out.println("Vau!");
}
}
// Használat
// Animal myAnimal = new Animal();
// myAnimal.makeSound(); // Kimenet: Általános állati hang
//
// Animal myDog = new Dog();
// myDog.makeSound(); // Kimenet: Vau! (felülírt módszer hívása)
# Python példakód
class Animal:
def make_sound(self):
print("Általános állati hang")
class Dog(Animal):
def make_sound(self): # Felülírás
print("Vau!")
# Használat
# animal = Animal()
# animal.make_sound() # Kimenet: Általános állati hang
#
# dog = Dog()
# dog.make_sound() # Kimenet: Vau!