შეგიძლიათ ჩამოთვალოთ ობიექტზე ორიენტირებული პროგრამირების სხვადასხვა ტიპის პოლიმორფიზმი?
sobes.tech AI
პასუხი AI-სგან
ობიექტზე ორიენტირებული პროგრამირების (OOP) ძირითად ტიპებად რამდენიმე ტიპი გამოირჩევა:
-
ქვესაწილის პოლიმორფიზმი (Subtype Polymorphism) — ყველაზე გავრცელებული ტიპი, რომელიც რეალიზებულია მემკვიდრეობით და მეთოდების გადაწერით. ეს საშუალებას აძლევს გამოიყენოს ქვესაფრის ობიექტები ძირითადი კლასის ობიექტების ნაცვლად.
-
პარამეტრიული პოლიმორფიზმი (Parametric Polymorphism) — რეალიზებულია გენერიკ ტიპების საშუალებით, როდესაც ფუნქციები ან კლასები მუშაობენ ნებისმიერი მონაცემთა ტიპთან.
-
Ad-hoc პოლიმორფიზმი (Ad-hoc Polymorphism) — მოიცავს ფუნქციებისა და ოპერატორების გადატვირთვას, როდესაც ერთი ფუნქცია რამდენიმე რეალიზაციას ფლობს სხვადასხვა პარამეტრის ტიპებით.
-
მოწყობის დროს პოლიმორფიზმი (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() // მეთოდის გამოძახება დამოკიდებულია ობიექტის რეალურ ტიპზე
}