Sobes.tech
Junior — Middle

Կարող եք նշել օբյեկտային ծրագրավորման տարբեր տեսակների պոլիմորֆիզմը?

sobes.tech AI

Պատասխան AI-ից

Օբյեկտային ուղղված ծրագրավորման (OOP) մեջ տարբեր հիմնական տիպեր polymorphism են առանձնացվում.

  1. Տիպի ենթատիպի պոլիմորֆիզմ (Subtype Polymorphism) — ամենատարածված տեսակն է, որը իրականացնում է ժառանգության և մեթոդների վերագրածման միջոցով: Դա թույլ է տալիս օգտագործել ենթակլասների օբյեկտները որպես հիմնական դասի օբյեկտներ:

  2. Պարամետրային պոլիմորֆիզմ (Parametric Polymorphism) — իրականացնում է ընդհանուր տիպերի (generics) միջոցով, երբ ֆունկցիաները կամ դասերը աշխատում են ցանկացած տվյալների տիպի հետ:

  3. Ադ-հոկ պոլիմորֆիզմ (Ad-hoc Polymorphism) — ներառում է ֆունկցիաների և օպերատորների վերաշարադրություն, երբ մեկ ֆունկցիան ունի մի քանի իրականացման տարբեր տիպերի համար:

  4. Աշխատանքի ժամանակի պոլիմորֆիզմ (Runtime Polymorphism) — հասնում է վիրտուալ մեթոդների և դինամիկ կապի միջոցով, երբ մեթոդի կանչը որոշվում է գործարկման ժամանակ:

Swift (iOS)-ում ենթատիպի պոլիմորֆիզմի օրինակ:

class Animal {
    func sound() {
        print("Որոշ ձայն")
    }
}

class Dog: Animal {
    override func sound() {
        print("Շան ձայն")
    }
}

class Cat: Animal {
    override func sound() {
        print("Մյաու")
    }
}

let animals: [Animal] = [Dog(), Cat()]
for animal in animals {
    animal.sound()  // Մեթոդի կանչը կախված է օբյեկտի իրական տիպից
}