Полиморфизм.
Наследование
Интерфейс
Реализация
Конструкторы и деструкторы.
Реализация
Поля и методы, недоступные извне
Ограничение доступа позволяет:
· Предотвратить несанкционированное изменение полей объекта
· Упростить изменение реализации класса, если оно не затрагивает интерфейс.
Ø В классе всегда существует особые методы, которые выполняют создание и уничтожение объектов класса.
Ø Метод для создания объектов и инициализации их полей называются конструктором (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;
· Для динамического связывания используются виртуальные методы и таблицы виртуальных методов.