Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Зачем переопределять методы




Переопределение методов позволяет С# поддерживать динамический полимор-

физм. Без полиморфизма объектно-ориентированное программирование невозможно,

поскольку он позволяет исходному классу определять общие методы, которыми будут

пользоваться все производные классы, и в которых $ри этом можно будет задать соб-

ственную реализацию некоторых или всех этих методов. Переопределенные методы

представляют собой еще один способ реализации в С# аспекта полиморфизма, кото-

рый можно выразить как "один интерфейс — много методов".

Ключ (вернее, его первый "поворот") к успешному применению полиморфизма

лежит в понимании того, что базовые и производные классы образуют иерархию, ко-

торая развивается в сторону более узкой специализации. При корректном использо-

вании базовый класс предоставляет производному классу все элементы "пригодными

к употреблению", т.е. для прямого их использования. Кроме того, он определяет ме-

тоды, которые производный класс должен реализовать самостоятельно. Это делает оп-

ределение производными классами собственных методов более гибким, по-прежнему

оставляя в силе требование согласующегося интерфейса. Таким образом, сочетая на-

следование с возможностью переопределения (замещения) методов, в базовом классе

можно определить общую форму методов, которые будут использованы производны-

ми классами.

Применение виртуальных методов

Чтобы лучше почувствовать силу виртуальных методов, применим их к классу

TwoDShape. В предыдущих примерах каждый класс, выведенный из класса

TwoDShape, определяет метод с именем area (). Это наводит нас на мысль о том, не

лучше ли сделать метод вычисления площади фигуры агеа() виртуальным в классе

TwoDShape, получив возможность переопределить его в производных классах таким

образом, чтобы он вычислял площадь согласно типу конкретной геометрической фи-

гуры, которую инкапсулирует класс.

 



C#. Абстрактные и конечные методы.










Последнее изменение этой страницы: 2018-05-27; просмотров: 211.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...