Основне меню  

   

Реклама  

Скачуйте відеуроки для створення сайту за допомогою SMS Joomla 

реклама

 

 

   

Ми в Facebook  

Калькулятор расчета пеноблоков смотрите на этом ресурсе
Все о каркасном доме можно найти здесь http://stroidom-shop.ru
Как снять комнату в коммунальной квартире смотрите тут comintour.net
   

З Новим роком!  

   

Статистика  

Користувачі
1
Статті
171
Перегляди статей
447203
   

Пошук по сайту  

   

Ми знаходимось тут  

   

Випадкове фото  

   

Наш відеоканал  

   

Відвідування сайту  

Яндекс.Метрика

 

   

Посібник Delphi  

ДОСТУПНИЙ ВИКЛАД,

ЦІКАВІ ПРИКЛАДИ, ВИХІДНІ КОДИ.

ЦІНА ДИСКА З МАТЕРІАЛАМИ - 500 грн. 

Якщо ваша карта обслуговується ПриватБанком тоді переведіть потрібну суму через Приват24 на карту    5168 7573 0556 9925 або натисніть на посилання "Перейти до оплати", щоб здійснити миттєвий платіж без комісії. Перейти до оплати!

 Звертайтесь за адресою еmail:kuzbyt@ukr.net

 
   

Відеокурс по С++  

   

Рекомендуємо:  

   

Ми в контактах  

   

Сайти  

Українські уроки про ІТ

Єдина Країна! Единая Страна!

 

Українські уроки про програмування

 

 
   

Розглянувши в попередніх уроках успадкування, ми тепер можемо взятися за наступний принцип об'єктно-орієнтованого програмування (ООП) - поліморфізм.

Сам термін поліморфізм можна перекласти як «багато форм». А якщо говорити проcто словами, поліморфізм - це різна реалізація однотипних дій. Класична фраза, яка коротко пояснює поліморфізм - «Один інтерфейс, безліч реалізацій». Наведу приклади з життя. У автомобілях є рульове колесо. Це колесо є інтерфейсом між водієм і автомобілем, який дозволяє повертати автомобіль. Механічна реалізація керма у автомобілів може бути різна, але при цьому результат виходить однаковим - колесо вправо - автомобіль вправо, і навпаки. Ще один приклад. Клавіатура є інтерфейсом введення між користувачем і ПК. При натисканні однієї і тієї ж клавіші на різних клавіатурах результат отримуємо однаковий, але при цьому сама реалізація натискання клавіші може бути різна ('ємкістна, контактна і тд.).

Переходимо до програмування

З поліморфізмом до нас додаються ще кілька понять: віртуальний / абстрактний метод, перевизначення методу.

Віртуальний метод - це метод, який МОЖЕ бути перевизначений в класі-спадкоємця. Такий метод може мати стандартну реалізацію в базовому класі.

Абстрактний метод - це метод, який повинен бути реалізований в класі-спадкоємця. При цьому, абстрактний метод не може мати своєї реалізації в базовому класі (тіло порожнє), на відміну від віртуального.

Перевизначення методу - це зміна реалізації методу, встановленого як віртуальний (у класі спадкоємця метод буде працювати відмінно від базового класу).

В якості системи, що надає той самий інтерфейс, в програмуванні може виступати клас і інтерфейс. Тут ми поговоримо про класах. Є клас, в ньому оголошений віртуальний або абстрактний метод. Від цього класу успадковуються ще кілька класів, і в кожному з них по-різному реалізується той самий віртуальний / абстрактний метод. Виходить, об'єкти цих класів мають метод з однаковим ім'ям, але з різною реалізацією. У цьому і є поліморфізм.

Наприклад, є клас геометричні фігури, і в ньому оголошений метод Draw (), який буде малювати фігуру. Від цього класу успадковуються класи Трикутник, Прямокутник, Коло. У них реалізується метод для малювання (зрозуміло, що реалізація малювання кожної фігури різна). У підсумку ми можемо створити об'єкти цих класів, і у всіх буде метод Draw (), який буде малювати відповідну фігуру.

Для чого взагалі потрібен поліморфізм?

Поліморфізм дозволяє писати більш абстрактні, розширювані програми, один і той же код використовується для об'єктів різних класів, поліпшується читабельність коду. Поліморфізм дозволяє позбавити розробника від написання, читання і налагодження безлічі if-else / switch-case конструкцій.

Цей урок був теоретичним, в наступних ми вже детально розглянемо поліморфізм, віртуальні / абстрактні методи на практиці.

В якості домашнього завдання я попрошу вас нижче в коментарях навести приклади систем «Один інтерфейс, безліч реалізацій», за типом керма і клавіатури.

PS. Не забудьте поділитися з друзями цим уроком за допомогою кнопок соціальних мереж.

   

Поділіться з друзями

 
   

Сайт для перевірки своїх знань з програмування на сайті:http://www.quizful.net/test


 Розробка сайтів, інтернет-магазинів під ключ. Створення програмного забезпечення для обліку в магазинах,

гуртовнях, ведення власного бізнесу та інших. Написання дипломних та курсових робіт з програмування, баз даних.

 

Звертайтесь за адресою email:kuzbyt@ukr.net

 

 

© (C) Sambir, I.Kuzbyt