Junior — Middle
Kuidas eristada meetodi ülekoormamist ja selle ülekirjutamist objektorienteeritud programmeerimises?
sobes.tech AI
Vastus AI-lt
Meetodi ülekoormamine (overloading) ja meetodi ülekirjutamine (overriding) on objektorienteeritud programmeerimises erinevad kontseptsioonid:
-
Meetodi ülekoormamine (overloading): ühes klassis on mitu meetodit sama nimega, kuid erinevate parameetritega (tüüp, arv). See võimaldab kutsuda meetodit erinevate argumentidega.
-
Meetodi ülekirjutamine (overriding): kui alamklass pakub oma rakendust juba määratletud meetodile, mille signatuur (nimi ja parameetrid) on sama, mis baasklassil. See võimaldab muuta meetodi käitumist alamklassis.
Näide Java keeles:
class Animal {
void sound() {
System.out.println("Mõni hääl");
}
void sound(String mood) { // ülekoormamine
System.out.println("Hääl kui " + mood);
}
}
class Dog extends Animal {
@Override
void sound() { // ülekirjutamine
System.out.println("Haugumine");
}
}
Siin ülekirjutab sound() Dog klassis baasklassi meetodi, ja sound(String mood) on sama klassi ülekoormamine.