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