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")

# Ֆունկցիա, որը աշխատում է օբյեկտների հետ՝ օգտագործելով հիմնական դասը

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