Sobes.tech
Junior

Millal toimub meetodi (overriding) ülekirjutamine programmeerimises?

sobes.tech AI

Vastus AI-lt

Meetodite ülekirjutamine toimub pärilikkuse ajal, kui alampereklass pakub oma versiooni meetodist, mis on juba defineeritud vanemklass. Meetodi signatuur (nimi, tagastatava tüüpi ja argumentide arv/tüübid) peab vastama vanemklassi meetodile. See võimaldab polümorfismi töötada: alampereklaasi objekt, mida kasutatakse vanemklassi objektina, kutsub esile oma spetsiifilise meetodi rakenduse.

Kasutusnäited:

  • Päriliku käitumise loogika muutmine.
  • Pakub spetsiifilist alampereklaasi rakendust üldisele liidesele.

Põhipunktid:

  • Nõutav on is-a suhe (pärilikkus).
  • Meetodi signatuur peab vastama.
  • Pääsukorraldus võib olla sama või vähem rangem kui vanemmeetodi.
  • Ei saa üle kirjutada final või static meetodeid (enamikus keeltes).
// Näide Java
class Animal {
    public void makeSound() {
        System.out.println("Üldine looma hääl");
    }
}

class Dog extends Animal {
    @Override // Anotatsioon näitab ülekirjutamist
    public void makeSound() {
        System.out.println("Vau!");
    }
}

// Kasutamine
// Animal myAnimal = new Animal();
// myAnimal.makeSound(); // Väljund: Üldine looma hääl
//
// Animal myDog = new Dog();
// myDog.makeSound(); // Väljund: Vau! (kutsub esile ülekirjutatud meetodi)