Направо към съдържанието

Полиморфизъм (информатика)

от Уикипедия, свободната енциклопедия

Полиморфизмът в обектно ориентираното програмиране представлява свойството на обектите от един и същи тип да имат един и същи интерфейс, но с различна реализация на този интерфейс.

Различни неща или обекти могат да имат еднакъв интерфейс или да отговарят на едно и също (по наименование) съобщение и да реагират подходящо, в зависимост от природата или типа на обекта. Това позволява много различни неща да бъдат взаимозаменими. Например, ако една птица получи съобщение „движи се бързо“, тя ще маха с крила и ще лети. Ако един лъв получи същото съобщение, той ще тича, използвайки краката си. И двете животни отговарят на една и съща молба по начини, които са подходящи за всяко от тях.

Смисълът на полиморфизма може да бъде накратко изразен със следната фраза – „Един интерфейс, множество от различни реализации“. Чрез полиморфизма се постига по-голяма абстракция и по-лесно повторно използване на кода.

Този пример показва как полиморфизмът работи. В резултат на полиморфизма обектите могат да изберат типа на изпълнение на метода по време на изпълнението на програмата.

class Zoo {
    // клас Животно
    class Animal {

        // Вдигай шум
        abstract string MakeNoise();
    }

    // класът Котка наследява класа Животно
    class Cat: Animal {

        // Котката вдига шум мяукайки
        string MakeNoise() {
            return "Meow";
        }
    }

    // класът Куче наследява класа Животно
    class Dog: Animal {

        // Кучето вдига шум като лае
        string MakeNoise() {
            return "Bark";
        }
    }

    public static void Main() {
        // този метод не знае какъв конкретен тип животно е "animal"
        // и какъв ще е звукът, което животното ще произведе
        Animal animal = Zoo.GetAnimal();
        Console.WriteLine(animal.MakeNoise());
    }
}