Sobes.tech
Junior

Полиморфизм дар барномасозӣ чист?

sobes.tech AI

Ҷавоб аз AI

Полиформизм (аз грчкиот "многу форми") е способноста на различни објекти да реагираат по различен начин на иста порака (повик на метод), во зависност од нивниот тип.

Во објектно-ориентираното програмирање, полиформизмот овозможува:

  • Да работите со објекти од различни класи преку заеднички интерфејс или основна класа.
  • Да создавате пофлексибилен и проширлив код.

Главните видови на полиформизам:

  • Compile-time (статички) полиформизам: реализира се преку пренатоварување на методи (method overloading). Методи со исто име, но различни сигнатури (број или типови на параметри), се дефинираат во една класа.
  • Run-time (динамичен) полиформизам: реализира се преку пренамена на методи (method overriding). Метод во наследена класа има иста сигнатура како тој во основната класа. Кој точно метод ќе биде повикан, се одредува во време на извршување врз основа на вистинскиот тип на објектот.

Пример во Python (динамичен полиформизам):

class Animal:
    def sound(self):
        pass # Базов метод, кој ќе биде пренамемен

class Dog(Animal):
    def sound(self):
        # Пренамена на методот sound за класата Dog
        print("Woof")

class Cat(Animal):
    def sound(self):
        # Пренамена на методот sound за класата Cat
        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