Sobes.tech
Junior — Middle

Կարող եք տալ օրինակ, որը պատկերացնում է օբյեկտային ծրագրավորման տարբեր տեսակների պոլիմորֆիզմը:

sobes.tech AI

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

Նպատկերված օբյեկտային ծրագրավորման մեջ, պոլիմորֆիզմը թույլ է տալիս տարբեր դասերի օբյեկտներին տարբեր կերպ մշակել նույն անունով մեթոդների կանչերը:

1. Կոմպիլյացիայի ժամանակի պոլիմորֆիզմ (ստատիկ պոլիմորֆիզմ):

  • մեթոդների ավելցուկային բեռնվածություն՝ միևնույն անունով, բայց տարբեր պարամետրերով մի քանի մեթոդ:
class Calculator {
    func add(a: Int, b: Int) -> Int {
        return a + b
    }
    func add(a: Double, b: Double) -> Double {
        return a + b
    }
}

2. Կատարողական ժամանակի պոլիմորֆիզմ (դինամիկ պոլիմորֆիզմ):

  • մեթոդների վերագրում ենթակլասներում:
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()  // Տպում է "Շունչ" և "Մյաու"
}

Այսպիսով, պոլիմորֆիզմը թույլ է տալիս օգտագործել միավոր ինտերֆեյս տարբեր տիպերի օբյեկտների հետ աշխատելու համար։