Sobes.tech
Junior — Middle

Можете ли да објасните концепт полиморфизма у објектно оријентисаном програмирању?

sobes.tech АИ

Одговор од АИ

Polimorfizam je princip objektno-orijentisanog programiranja koji omogućava objektima različitih klasa da reaguju na iste poruke (metode) na različite načine.

Postoje dve glavne vrste polimorfizma:

  1. Kompajlerski (statički) — preopterećenje metoda i operatora.
  2. Izvršni (dinamički) — redefinisanje metoda u naslednim klasama.

Primer dinamičkog polimorfizma u C#:

class Animal {
    public virtual void Speak() {
        Console.WriteLine("Animal speaks");
    }
}

class Dog : Animal {
    public override void Speak() {
        Console.WriteLine("Bark");
    }
}

class Cat : Animal {
    public override void Speak() {
        Console.WriteLine("Meow");
    }
}

// Upotreba
Animal myDog = new Dog();
Animal myCat = new Cat();
myDog.Speak(); // Ispisaće "Bark"
myCat.Speak(); // Ispisaće "Meow"

Na ovaj način, isti poziv metode Speak() ponaša se različito u zavisnosti od tipa objekta.