Junior — Middle
Ներկայացրեք տարբերությունը այն մեթոդի միջև, որը նույն անունով և սիգնատուրայով իրականացվում է դասում և նրա լիցքավորումը, և մեթոդի վերագրումը ժառանգական դասերում։
sobes.tech AI
Պատասխան AI-ից
Մեթոդի ավելցուկային (overloading) նշանակում է, երբ նույն դասում ստեղծվում են մի քանի մեթոդներ նույն անունով, բայց տարբեր ստորագրություններով (տարբեր պարամետրերի հավաքածուներ): Սա թույլ է տալիս կանչել մեթոդը տարբեր արգումենտներով, և կոմպիլյատորը ընտրում է համապատասխան տարբերակը:
Մեթոդի վերագրում (overriding) տեղի է ունենում ժառանգվող դասում, երբ նույն ստորագրությամբ մեթոդը նորից իրականացվում է՝ փոփոխելու կամ ընդլայնելու հիմնական մեթոդի վարքագիծը:
Օրինակ Swift-ում:
class Animal {
func sound() {
print("Որոշ ձայն")
}
}
class Dog: Animal {
override func sound() { // վերագրում
print("Շունչ")
}
func sound(volume: Int) { // ավելցուկային
print("Շունչ բարձրության վրա \(volume)")
}
}
Այստեղ, sound() դասի Dog-ում վերագրում է հիմնական դասի Animal մեթոդը, իսկ sound(volume:) ավելցուկային է մեթոդի՝ այլ պարամետրային հավաքածուով։