Junior
პროგრამირებაში პოლიმორფიზმი რა არის?
sobes.tech AI
პასუხი AI-სგან
პოლიმორფიზმი (ბერძნული სიტყვიდან "მრავალი ფორმა") არის უნარი, სხვადასხვა ობიექტებმა ერთსა და იმავე შეტყობინებაზე (მეთოდის გამოძახებაზე) განსხვავებული რეაგირება მოახდინონ, მათი ტიპის მიხედვით.
ობიექტზე ორიენტირებულ პროგრამირებაში, პოლიმორფიზმი საშუალებას აძლევს:
- მუშაობა სხვადასხვა კლასის ობიექტებთან საერთო ინტერფეისის ან საწყის კლასის მეშვეობით;
- შექმნათ უფრო მოქნილი და გაფართოებადი კოდი.
პოლიმორფიზმის ძირითადი ტიპები:
- კომპილაციის დროს (სტატიკური) პოლიმორფიზმი: რეალიზდება მეთოდების გადატვირთვით (method overloading). ერთიდაიგივე სახელის მქონე, მაგრამ სხვადასხვა სიგნატურით (პარამეტრების რაოდენობა ან ტიპი) მეთოდები ერთ კლასში.
- შესრულების დროს (დინამიური) პოლიმორფიზმი: რეალიზდება მეთოდების გადაფარვით (method overriding). შვილობილი კლასის მეთოდი იგივე სიგნატურას აქვს, როგორც მშობლის კლასში. კონკრეტული მეთოდის გამოძახება განსაზღვრავს პროგრამის შესრულების დროს, ობიექტის რეალურ ტიპზე დაყრდნობით.
Python-ის მაგალითი (დინამიური პოლიმორფიზმი):
class Animal:
def sound(self):
pass # ძირითადი მეთოდი, რომელიც გადაფარება უნდა
class Dog(Animal):
def sound(self):
# Dog-ისთვის sound მეთოდის გადაფარვა
print("Woof")
class Cat(Animal):
def sound(self):
# Cat-ისთვის sound მეთოდის გადაფარვა
print("Meow")
# ფუნქცია, რომელიც მუშაობს ობიექტებთან მშობელი კლასი Animal-ის მეშვეობით
def make_animal_sound(animal):
animal.sound()
# პოლიმორფიზმის გამოყენება
dog = Dog()
cat = Cat()
make_animal_sound(dog) # გამოიძახებს Dog.sound() -> Woof
make_animal_sound(cat) # გამოიძახებს Cat.sound() -> Meow