Заказать курсовые, контрольные, рефераты...
Образовательные работы на заказ. Недорого!

Наследование (синтаксис). Компьютерные технологии (программирование на C#)

РефератПомощь в написанииУзнать стоимостьмоей работы

Во втором способе (виртуальный метод) при преобразовании типов, описанном выше, вызываться будет метод класса-наследника. Это существенно, если виртуальный метод вызывается внутри кода, написанного для класса-предка. Так как реальная ссылка в момент выполнения кода будет указывать на экземпляр объекта класса-наследника, то выполняться будет именно версия класса-наследника. При описании… Читать ещё >

Наследование (синтаксис). Компьютерные технологии (программирование на C#) (реферат, курсовая, диплом, контрольная)

Наследование расширяет число типов, к которым относятся объекты класса-наследника — эти объекты имеют тип самого класса-наследника и всех его предков.

Когда один класс наследует другой, класс-наследник приобретает все поля и методы, которыми обладает его предок.

Класс-наследник может добавить свои поля и методы и может заменить унаследованные поля и изменить поведение унас…

Другой способ — описать метод, который может быть изменен у наследника, как виртуальный. Так что, в классе-предке это выглядит как.

public virtual void aMethod ();

а в классе-наследнике.

public override void aMethod ();

Поле не может быть виртуальным.

Во втором способе (виртуальный метод) при преобразовании типов, описанном выше, вызываться будет метод класса-наследника. Это существенно, если виртуальный метод вызывается внутри кода, написанного для класса-предка. Так как реальная ссылка в момент выполнения кода будет указывать на экземпляр объекта класса-наследника, то выполняться будет именно версия класса-наследника.

При описании виртуального метода в классе-наследнике (метод с модификатором override) часто бывает необходимо вызвать унаследованную версию виртуального метода. Для этого используется служебное слово base. Так реализация метода aMethod () класса-наследника может иметь вид.

public override void aMethod ();

{.

base.aMethod (); //Вызов метода класса-предка.

// …

}.

Если дальнейшее перекрытие виртуального метода aMethod () в последующих наследниках не желательно, то в его заголовок следует добавить модификатор sealed.

public sealed override void aMethod ();//Метод больше не будет перекрываться Если же, наоборот, метод, описанный как виртуальный, должен быть заменен новой версией виртуального же метода, описание должно иметь вид.

public new virtual void aMethod ();//Образуется новый виртуальный метод.

Показать весь текст
Заполнить форму текущей работой