Основы объектно-ориентированного программирования на языке 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