русс | укр

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






© 2012 ci-sharp.ru При использовании материала прямая индексирующая ссылка на сайт ОБЯЗАТЕЛЬНА.
Права строго защищены нормами международного права, интеллектуальной собственности и авторского права.