Junior — Middle
Kako razlikovati preopterećenje metode od njenog prepisivanja u objektno-orijentisanom programiranju?
sobes.tech АИ
Одговор од АИ
Preopterećenje metode (overloading) i prepisivanje metode (overriding) su različiti koncepti u objektno-orijentisanom programiranju:
-
Preopterećenje metode: postoji više metoda sa istim imenom u istoj klasi, ali sa različitim parametrima (tip, broj). Ovo omogućava pozivanje metode sa različitim argumentima.
-
Prepisivanje metode: kada podklasa pruža svoju implementaciju metode koja je već definisana u osnovnoj klasi sa istom potpisom (ime i parametri). Ovo omogućava promenu ponašanja metode za podklasu.
Primer u Javi:
class Animal {
void sound() {
System.out.println("Neki zvuk");
}
void sound(String mood) { // preopterećenje
System.out.println("Zvuk kada " + mood);
}
}
class Dog extends Animal {
@Override
void sound() { // prepisivanje
System.out.println("Lajanje");
}
}
Ovde, sound() u klasi Dog prepisuje metodu osnovne klase, a sound(String mood) je preopterećenje metode u istoj klasi Animal.