Junior — Middle
Ինչպե՞ս տարբերել մեթոդի ավելցուկը նրա վերաշարադրությունից օբյեկտային ծրագրավորման մեջ։
sobes.tech AI
Պատասխան AI-ից
Մեթոդի ավելցուկային (overloading) և մեթոդի վերագրում (overriding) տարբեր հասկացություններ են օբյեկտային ծրագրավորման մեջ.
-
Մեթոդի ավելցուկային (overloading): նույն դասում մի քանի մեթոդ կա նույն անունով, բայց տարբեր պարամետրերով (տիպ, քանակ): Սա թույլ է տալիս կանչել մեթոդը տարբեր արգումենտներով:
-
Մեթոդի վերագրում (overriding): երբ ենթակլասը տրամադրում է իր սեփական իրականացմանը արդեն սահմանված մեթոդի, որը նույն սիգնատուրայով (անուն և պարամետրեր) է, բազային դասում: Սա թույլ է տալիս փոխել մեթոդի վարքագիծը ենթակլասի համար:
Java-ի օրինակով:
class Animal {
void sound() {
System.out.println("Որոշ ձայն");
}
void sound(String mood) { // ավելցուկային
System.out.println("Ձայն երբ " + mood);
}
}
class Dog extends Animal {
@Override
void sound() { // վերագրում
System.out.println("Շան ձայն");
}
}
Այստեղ, sound()-ը Dog դասում վերագրում է բազային դասի մեթոդին, իսկ sound(String mood)-ը նույն դասում ավելցուկային է։