Віртуальний метод

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

Віртуальний метод або віртуальна функція — метод об'єкта в об'єктно-орієнтованому програмуванні, різний для базового класу і класу нащадка.

Концепція віртуальної функції вирішує наступну проблему:

У ООП, якщо клас-нащадок наслідується від базового класу, об'єкт екземпляр класу-нащадку може використовуватись або як екземпляр батьківського класу (бути приведеним до батьківського класу), або як екземпляр класу-нащадка. Якщо у класі-нащадку є функції, що перекривають (мають таку ж сигнатуру) функції із батьківського класу, то поведінка при виклику таких методів (при використанні даного об'єкта як екземпляра батьківського класу) є невизначеною.

Відмінність між віртуальністю і невіртуальністю функцій вирішує цю невизначеність. Якщо функція описана як віртуальна у базовому класі, тоді буде викликана функція із класу нащадка (якщо така існує). Якщо вона не віртуальна, тоді — із батьківського класу

Див. також[ред.ред. код]