C# - Головна Простір імен
► System (5)► Microsoft (1) Для учнів (початківців)
► Відео уроки (4)► Навчання (177) ► Приклади програм (19) ► Секрети Сі Шарп (4) Для професіоналів
► Навчання (6)► Приклади програм (1) |
Перевизначення методів базового класу C#Похідний клас успадковує всі члени базового класу, в тому числі всі його методи. У багатьох випадках потрібно змінити роботу будь-якого методу. Зміна методу відбувається шляхом його заміщення в похідному класі. Наприклад: public class A { public int f() {return 0;} } public class B:A { public int f() {return 1;} } Метод f описаний і в базовому і в похідному класі. У наступному фрагменті програми викликається метод з класу В: B b=new B(); int i=b.f(); Але для об'єкта b можна викликати метод f базового класу, для цього треба виконати перетворення типів: ((A)b).f(); або A a=b; a.f(); В обох випадках буде викликана метод f базового класу. Для звичайних (не віртуальних) методів справедливо наступне правило: При виклику не віртуального методу, метод визначається типом посилання. Але в багатьох випадках для роботи з об'єктами похідних типів необхідні методи визначені в цих типах, навіть якщо робота виконується через посилання базових класів. Для вирішення даної проблеми в об'єктно-орієнтованих мовах створені віртуальні методи. Переглядів: 4052 |