|
Презентация _Полиморфизм. Виртуальные методы_. Полиморфизм. Виртуальные методы Преподаватель Гаджимагомедова С. Р
Тема: Полиморфизм. Виртуальные методы Преподаватель: Гаджимагомедова С.Р. Принципы ООП - Наследование – это возможность создавать новые (производные) классы на основе уже существующих (базовых).
- Инкапсуляция -это механизм сокрытия внутренней структуры объекта и предоставление доступа к нему через интерфейсы.
- Полиморфизм – это возможность у методов с одинаковыми именами иметь различную реализацию.
Виртуальный метод - Виртуальный метод – это метод, который может быть переопределен в производном классе.
- Переопределение метода – это изменение его реализации в классе-наследнике. Переопределив метод, он будет работать по-разному в базовом классе и классе наследнике, имея при этом одно и то же имя и тип метода и аргументы.
Виртуальный метод - Виртуальный метод объявляется в базовом классе при помощи ключевого слова virtual:
[модификаторы] virtual [тип] [имя метода] ([аргументы]) { // тело метода } - Статический метод не может быть виртуальным.
Объявление переопределенного метода [модификаторы] override [тип] [имя метода] ([аргументы]) { // новое тело метода } Пример: // создаем базовый класс Фигура class Shape { // создаем виртуальный метод Draw public virtual void Draw() { Console.WriteLine("Рисуем базовый объект"); } } class Circle: Shape { public override void Draw() { // переопределяем метод Draw Console.WriteLine("Рисуем Окружность"); } } Задание: Создать класс Прямоугольник (Rectangle) Пример (продолжение) // Создание объектов и вызов метода Draw() class Program { static void Main(string[] args) { Shape c = new Circle(); c.Draw(); Shape r = new Rectangle(); r.Draw(); Console.ReadKey(); } } ВЫЗОВ БАЗОВОГО МЕТОДА - Базовый метод можно вызывать из производного при помощи ключевого слова base. Например, в классе Circle добавим:
public override void Draw() { base.Draw(); } Задание: добавить вызов базового метода Draw() в переопределенном методе класса Rectangle ВОПРОСЫ: - Дайте определение понятию «полиморфизм»?
- Какой метод называют виртуальным? C помощью какого ключевого слова объявляется виртуальный метод?
- Какой метод называют переопределенным? C помощью какого ключевого слова переопределенный метод объявляется?
- Каким образом в производном классе можно вызвать метод базового класса?
СПАСИБО ЗА ВНИМАНИЕ! |
|
|