Sobes.tech
Junior

Kedy sa metóda považuje za prepísanú (overriding)?

sobes.tech AI

Odpoveď od AI

Metóda sa považuje za prepísanú (overriding) v objektovo orientovanom programovaní, keď:

  1. Je definovaná v podtriede so rovnakým názvom, typom návratu a zoznamom parametrov (podpisom) ako metóda v nadtriede.
  2. Metóda nadtriedy nie je private.
  3. Metóda v podtriede nemá prísnejší modifikátor prístupu ako metóda v nadtriede.
  4. V prípade výnimiek, prepísaná metóda nemôže deklarovať kontrolované výnimky ([checked exceptions]) ktoré sú všeobecnejšie ako tie deklarované v prepísanej metóde.

Pri volaní prepísanej metódy na objekte podtriedy, sa vykoná verzia metódy z podtriedy. Toto je príklad polymorfizmu počas behu.

Príklad v Jave:

// java

class Animal {
    public void makeSound() {
        System.out.println("Všeobecný zvuk zvieraťa");
    }
}

class Dog extends Animal {
    @Override // Anotácia @Override potvrdzuje, že metóda bola prepísaná
    public void makeSound() {
        System.out.println("Haf haf");
    }
}

class Cat extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Mňau");
    }
}