ВУЗ:
Составители:
Рубрика:
21
Лабораторная работа № 3
ИЕРАРХИЯ ОБЪЕКТОВ И ГРУППА. ИТЕРАТОРЫ
Цель. Получить практические навыки создания объектов-групп и
использования методов-итераторов.
Основные теоретические сведения.
•Абстрактный класс. Класс, который представляет абстрактную
концепцию, для которой не могут существовать объекты. Абстрактный
класс используется не для создания экземпляров, а только как интерфейс и
в качестве базы для других классов. Абстрактный класс пишется в предпо-
ложении, что его конкретные подклассы дополняют его структуру и пове-
дение, скорее всего,
реализовав абстрактные методы.
Полезно, чтобы корневой класс в иерархии классов был абстрактным
классом. Он должен иметь основные общие свойства со своими производ-
ными классами так, чтобы эти свойства наследовались из него, но сам не
может использоваться для объявления объектов. Вместо этого он исполь-
зуется для объявления указателей, которые могут иметь
доступ к объектам
наследуемых классов.
Абстрактный класс также обеспечивает интерфейс для изменений в
иерархии классов в целом. Если добавляются некоторые новые свойства,
которые применяются ко всем объектам иерархии, то их можно просто до-
бавить к абстрактному классу.
• Абстрактный метод. Объявленный, но не реализованный метод в
абстрактном классе. Абстрактный метод
может рассматриваться как обоб-
щение переопределения. В обоих случаях поведение родительского класса
изменяется для потомка. Для абстрактного метода, однако, поведение про-
сто не определено. Любое поведение задается в производном классе.
Одно из преимуществ абстрактного метода является чисто концепту-
альным: программист может мысленно наделить нужным действием абст-
ракцию сколь угодно высокого
уровня. Например, для геометрических фи-
гур мы можем определить метод Draw, который их рисует: треугольник
TTriangle, окружность TCircle, квадрат TSquare. Мы определим аналогич-
ный метод и для абстрактного родительского класса TGraphObject. Однако
такой метод не может выполнять полезную работу, поскольку в классе
TGraphObject просто нет достаточной информации для рисования чего бы
то ни было. Тем не менее присутствие метода Draw позволяет связать
функциональность (рисование) только один раз с классом TGraphObject, а
не вводить три независимые концепции для подклассов TTriangle, TCircle,
TSquare.
21 Лабораторная работа № 3 ИЕРАРХИЯ ОБЪЕКТОВ И ГРУППА. ИТЕРАТОРЫ Цель. Получить практические навыки создания объектов-групп и использования методов-итераторов. Основные теоретические сведения. •Абстрактный класс. Класс, который представляет абстрактную концепцию, для которой не могут существовать объекты. Абстрактный класс используется не для создания экземпляров, а только как интерфейс и в качестве базы для других классов. Абстрактный класс пишется в предпо- ложении, что его конкретные подклассы дополняют его структуру и пове- дение, скорее всего, реализовав абстрактные методы. Полезно, чтобы корневой класс в иерархии классов был абстрактным классом. Он должен иметь основные общие свойства со своими производ- ными классами так, чтобы эти свойства наследовались из него, но сам не может использоваться для объявления объектов. Вместо этого он исполь- зуется для объявления указателей, которые могут иметь доступ к объектам наследуемых классов. Абстрактный класс также обеспечивает интерфейс для изменений в иерархии классов в целом. Если добавляются некоторые новые свойства, которые применяются ко всем объектам иерархии, то их можно просто до- бавить к абстрактному классу. • Абстрактный метод. Объявленный, но не реализованный метод в абстрактном классе. Абстрактный метод может рассматриваться как обоб- щение переопределения. В обоих случаях поведение родительского класса изменяется для потомка. Для абстрактного метода, однако, поведение про- сто не определено. Любое поведение задается в производном классе. Одно из преимуществ абстрактного метода является чисто концепту- альным: программист может мысленно наделить нужным действием абст- ракцию сколь угодно высокого уровня. Например, для геометрических фи- гур мы можем определить метод Draw, который их рисует: треугольник TTriangle, окружность TCircle, квадрат TSquare. Мы определим аналогич- ный метод и для абстрактного родительского класса TGraphObject. Однако такой метод не может выполнять полезную работу, поскольку в классе TGraphObject просто нет достаточной информации для рисования чего бы то ни было. Тем не менее присутствие метода Draw позволяет связать функциональность (рисование) только один раз с классом TGraphObject, а не вводить три независимые концепции для подклассов TTriangle, TCircle, TSquare.
Страницы
- « первая
- ‹ предыдущая
- …
- 18
- 19
- 20
- 21
- 22
- …
- следующая ›
- последняя »