Sobes.tech
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éé.
  • final vagy static mó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!