Sobes.tech
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:) ավելցուկային է մեթոդի՝ այլ պարամետրային հավաքածուով։