Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Зачем переопределять методы
Переопределение методов позволяет С# поддерживать динамический полимор- физм. Без полиморфизма объектно-ориентированное программирование невозможно, поскольку он позволяет исходному классу определять общие методы, которыми будут пользоваться все производные классы, и в которых $ри этом можно будет задать соб- ственную реализацию некоторых или всех этих методов. Переопределенные методы представляют собой еще один способ реализации в С# аспекта полиморфизма, кото- рый можно выразить как "один интерфейс — много методов". Ключ (вернее, его первый "поворот") к успешному применению полиморфизма лежит в понимании того, что базовые и производные классы образуют иерархию, ко- торая развивается в сторону более узкой специализации. При корректном использо- вании базовый класс предоставляет производному классу все элементы "пригодными к употреблению", т.е. для прямого их использования. Кроме того, он определяет ме- тоды, которые производный класс должен реализовать самостоятельно. Это делает оп- ределение производными классами собственных методов более гибким, по-прежнему оставляя в силе требование согласующегося интерфейса. Таким образом, сочетая на- следование с возможностью переопределения (замещения) методов, в базовом классе можно определить общую форму методов, которые будут использованы производны- ми классами. Применение виртуальных методов Чтобы лучше почувствовать силу виртуальных методов, применим их к классу TwoDShape. В предыдущих примерах каждый класс, выведенный из класса TwoDShape, определяет метод с именем area (). Это наводит нас на мысль о том, не лучше ли сделать метод вычисления площади фигуры агеа() виртуальным в классе TwoDShape, получив возможность переопределить его в производных классах таким образом, чтобы он вычислял площадь согласно типу конкретной геометрической фи- гуры, которую инкапсулирует класс.
C#. Абстрактные и конечные методы. |
||
Последнее изменение этой страницы: 2018-05-27; просмотров: 211. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |