Junior — Middle
Jak rozlišit přetížení metody od jejího přepsání v objektově orientovaném programování?
sobes.tech AI
Odpověď od AI
Přetížení metody (overloading) a přepsání metody (overriding) jsou odlišné koncepty v objektově orientovaném programování:
-
Přetížení metody: v jedné třídě je několik metod se stejným názvem, ale s různými parametry (typem, počtem). To umožňuje volat metodu s různými argumenty.
-
Přepsání metody: když podtřída poskytne vlastní implementaci metody, která je již definována v základní třídě se stejnou signaturou (jméno a parametry). To umožňuje změnit chování metody pro podtřídu.
Příklad v Java:
class Animal {
void sound() {
System.out.println("Nějaký zvuk");
}
void sound(String mood) { // přetížení
System.out.println("Zvuk když " + mood);
}
}
class Dog extends Animal {
@Override
void sound() { // přepsání
System.out.println("Štěkání");
}
}
Zde sound() v třídě Dog přepisuje metodu základní třídy, a sound(String mood) je přetížení metody ve stejné třídě Animal.