double arrow

Полиморфизм

Наследование

Интерфейс

Реализация

Конструкторы и деструкторы.

Реализация

Поля и методы, недоступные извне

Ограничение доступа позволяет:

· Предотвратить несанкционированное изменение полей объекта

· Упростить изменение реализации класса, если оно не затрагивает интерфейс.

Ø В классе всегда существует особые методы, которые выполняют создание и уничтожение объектов класса.

Ø Метод для создания объектов и инициализации их полей называются конструктором (constructor).

Ø Метод для удаления объекта из памяти называется деструктором (destructor).

Класс фигура.

Интерфейс

Конструктор Фигура (вид)

Метод ПолучитьФорму ()

Метод ПолучитьКоординаты(Х,У)

Метод Повернуть(угол)

Метод Переместить(направление)

Мктод Уронить()

Деструктор -Фигура()

Класс Фигура

Поле Форма

Поле Х

Поле У

Метод Проверить Поверхность

Класс Стакан

Конструктор Стакан()

Метод ПолучитьПоверхность(поверхность)

Деструктор –Стакан()

Реализация:

Поле Скорость

Поле Очки

Метод Игра()

Метод НаваяФигура(вид)

Метод ОпуститьФигуру()

Метод ПроверкаСтрок()

Основные средства разработки классов

· Наследование (inheritance) – отношение между классами, обеспечивающее создание новых классов на основе существующих за счет добавления новых полей и методов.

· Наследование реализует иерархию общее-частное(IS-A).

· Исходный класс называется родителем, производный – потомком.

· Если родитель один, то наследование называется простым.

· Если родителей несколько, то наследование называется множественным. Реализовано в С++.

Пример. Класс кнопка и класс Цветная кнопка.

Button
Top, Left, Height, Winch, Text
OnClick
Button_Color
Top, Left, Height, Winch, Text Color
OnClick() ChangeColor()

· При множественном наследовании в классе-потомок переходят поля и методы всех родителей

· Если два родителей из одной иерархии, то возникает дублирование полей и методов

· Чтобы этого избежать используются виртуальные поля и методы.

· Наследование позволяет:

ü Повторно использовать код (библиотеки классов)

ü Уменьшить размер программы

ü Облегчить откладку и тестирование.

· Полиморфизм (многообразие) – возможность реализации разных методов под общим именем.

· Виды полиморфизма:

Ø Перегрузка

Ø Статистический полиморфизм

Ø Динамический полиморфизм

· Перегрузка методов – возможность определять в одном классе несколько методов с одним именем, но с разными параметрами, отличающимися именами и типами.

· Пример.

Класс СистемыСчисления

Метод DecToBin(int dec)

Метод DecToBin(double dec)

· Статический полиморфизм – возможность определения разных реализаций методов с одним названием в иерархии классов

· Конкретный метод для каждого объекта известен на этапе компиляции, поэтому применяется ранее связывание.

Пример. Разработать иерархию классов для абстракции Фигура, Круг, Прямоугольник:

Класс Figure

Double x,y

Area()

Rectangle=new Rectangle();

Circle C=new Circle();

R.Area();

C.Area();

· Динамический полиморфизм – возможность определения разных реализаций методов с одним названием в иерархии классов, но конкретный метод для каждого объекта становится известен только на этапе выполнения.

· Применяется позднее связывание.

· Пример:

Figure F;

F=new Rectangle();

F.Area();

F=new Circle();

F.Area;

· Для динамического связывания используются виртуальные методы и таблицы виртуальных методов.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: