Sobes.tech
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