Основы объектно-ориентированного программирования на языке C# book | Page 135
7.7 Полiморфiзм
При вивченнi пiдтипового полiморфiзму ми будемо видiляти два
аспекти. Обидва аспекти мають вiдношення до спадкування:
Перший – при виконаннi програми, екземпляр похiдного класу роз-
глядається як екземпляр базового класу, наприклад в аргументах ме-
тоду, колекцiı̈, тобто приймає iншу форму.
Другий – похiдний клас перевизначає (override) вiртуальний (vi-
rtual) метод базового класу. Тобто похiдний клас надає власне визна-
чення й реалiзацiю методу.
Можна сказати, що якщо перший аспект має автоматичну реалiза-
цiю, то для реалiзацiı̈ другого необхiдно зробити деякi дiı̈.
По-перше треба створити iєрархiю класiв, спадкувавши усi класи
вiд одного базового. По-друге необхiдно через однаковий виклик мето-
ду базового класу застосувати для обробки даних вiдповiдний метод
похiдного класу.
З точки зору системи типiв C# , похiдний клас вважається пiд-
типом його базового класу, отже у C# полiморфiзм i спадкування є
пов’язаними.
Для вивчення полiморфiзму у програмуваннi треба ввести ще кiль-
ка таких понять як: вiртуальний, перевизначення методу.
Вiртуальний метод – це метод, який може бути перевизначений у
класi-спадкоємцi. Такий метод може мати свою реалiзацiю в базовому
класi.
Перевизначення методу – це змiна реалiзацiı̈ методу.
Розглянемо класичний приклад. Нехай необхiдно для рiзних гео-
метричних фiгур ( Коло, Прямокутник, Трикутник ) друкувати ı̈хню
назву.
Створимо базовий клас Figure , з якого будуть спадковуватися по-
хiднi класи для рисування вiдповiдних фiгур.
public class Figure
{
// поля класу
// вiртуальний метод для перевизначення
publ