Sobes.tech
Junior — Middle

Ako rozlíšiť preťaženie metódy od jej prepísania v objektovo orientovanom programovaní?

sobes.tech AI

Odpoveď od AI

Preťažovanie metódy (overloading) a prepisovanie metódy (overriding) sú odlišné koncepty v objektovo orientovanom programovaní:

  • Preťažovanie metódy: existuje viacero metód s rovnakým názvom v jednej triede, ale s rôznymi parametrami (typ, počet). To umožňuje volať metódu s rôznymi argumentmi.

  • Prepisovanie metódy: keď podtrieda poskytne vlastnú implementáciu metódy, ktorá je už definovaná v základnej triede s rovnakou podpisom (názov a parametre). To umožňuje zmeniť správanie metódy pre podtriedu.

Príklad v Jave:

class Animal {
    void sound() {
        System.out.println("Nejaký zvuk");
    }

    void sound(String mood) { // preťažovanie
        System.out.println("Zvuk keď " + mood);
    }
}

class Dog extends Animal {
    @Override
    void sound() { // prepisovanie
        System.out.println("Štekanie");
    }
}

Tu sound() v triede Dog prepíše metódu základnej triedy, a sound(String mood) je preťažovanie metódy v rovnakej triede Animal.