C# - Главная Пространство имен
► System ► Microsoft Для учеников (начинающих)
► Видео уроки ► Обучение ► Примеры программ ► Секреты в Си Шарп Для профессионалов
► Обучение ► Примеры программ ► Задачки - для тебя! |
Переопределение методов базового класса 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 базового класса. Для обычных (не виртуальных) методов справедливо следующее правило: При вызове не виртуального метода, метод определяется типом ссылки. Но во многих случаях для работы с объектами производных типов необходимы методы определенные в этих же типах, даже если работа выполняется через ссылки базовых классов. Для решения данной проблемы в объектно-ориентированных языках созданы виртуальные методы. Просмотров: 5810 |