Sobes.tech
Junior — Middle

შეგიძლიათ ჩამოთვალოთ ობიექტზე ორიენტირებული პროგრამირების სხვადასხვა ტიპის პოლიმორფიზმი?

sobes.tech AI

პასუხი AI-სგან

ობიექტზე ორიენტირებული პროგრამირების (OOP) ძირითად ტიპებად რამდენიმე ტიპი გამოირჩევა:

  1. ქვესაწილის პოლიმორფიზმი (Subtype Polymorphism) — ყველაზე გავრცელებული ტიპი, რომელიც რეალიზებულია მემკვიდრეობით და მეთოდების გადაწერით. ეს საშუალებას აძლევს გამოიყენოს ქვესაფრის ობიექტები ძირითადი კლასის ობიექტების ნაცვლად.

  2. პარამეტრიული პოლიმორფიზმი (Parametric Polymorphism) — რეალიზებულია გენერიკ ტიპების საშუალებით, როდესაც ფუნქციები ან კლასები მუშაობენ ნებისმიერი მონაცემთა ტიპთან.

  3. Ad-hoc პოლიმორფიზმი (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()  // მეთოდის გამოძახება დამოკიდებულია ობიექტის რეალურ ტიპზე
}