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.