Junior — Middle
Kaip atskirti metodo perkrovimą nuo jo perrašymo objektinio programavimo srityje?
sobes.tech AI
Atsakymas iš AI
Metodų perkrovimas (overloading) ir metodų perrašymas (overriding) yra skirtingos sąvokos objektinio programavimo srityje:
-
Metodų perkrovimas (overloading): vienoje klasėje yra keli metodai su tuo pačiu pavadinimu, bet skirtingais parametrais (tipu, kiekiu). Tai leidžia iškviesti metodą su skirtingais argumentais.
-
Metodų perrašymas (overriding): kai pogrupis pateikia savo įgyvendinimą jau apibrėžtam metode, kuris yra pagrindinioje klasėje su ta pačia signatūra (pavadinimu ir parametrais). Tai leidžia keisti metodo elgesį pogrupyje.
Pavyzdys Java kalba:
class Animal {
void sound() {
System.out.println("Kai kurie garsai");
}
void sound(String mood) { // perkrovimas
System.out.println("Garsas kai " + mood);
}
}
class Dog extends Animal {
@Override
void sound() { // perrašymas
System.out.println("Laižymas");
}
}
Čia sound() Dog klasėje perrašo pagrindinės klasės metodą, o sound(String mood) yra perkrovimas to paties metodo toje pačioje klasėje Animal.