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