ВУЗ:
Составители:
Рубрика:
22
Имеется и вторая, более актуальная причина использования абст-
рактного метода. В объектно-ориентированных языках программирования
со статическими типами данных (С++, Borland Pascal) программист может
вызвать метод класса, только если компилятор может определить, что
класс действительно имеет такой метод. Предположим, что программист
хочет определить полиморфную переменную типа TGraphObject, которая
будет в различные моменты времени
содержать фигуры различного типа.
Это допустимо для полиморфных объектов. Тем не менее компилятор раз-
решит использовать метод Draw для переменной, только если он сможет
гарантировать, что в классе переменной имеется этот метод. Присоедине-
ние метода Draw к классу TGraphObject обеспечивает такую гарантию,
даже если метод Draw для класса TGraphObject никогда не
выполняется.
Естественно, для того, чтобы каждая фигура рисовалась по-своему, метод
Draw должен быть виртуальным.
•Группа. Объект, в который включены другие объекты. Объекты,
входящие в группу, называются элементами группы. Элементы группы, в
свою очередь, могут быть группой.
Примеры групп:
1) окно в интерактивной программе, которое владеет такими элемен-
тами, как
поля ввода и редактирования данных, кнопки, списки выбора,
диалоговые окна и т.д. Примерами таких окон являются объекты классов,
порожденных от абстрактного класса Tgroup (TDeskTop, TWindow, TDia-
log) в иерархии классов библиотеки Turbo Vision и объекты классов, по-
рожденных от TWindowObject в иерархии классов библиотеки OWL;
2) агрегат, состоящий из более мелких узлов;
3) огород, состоящий
из растений, системы полива и плана выращи-
вания;
4) некая организационная структура (например, ФАКУЛЬТЕТ, КА-
ФЕДРА, СТУДЕНЧЕСКАЯ ГРУППА).
Мы отличаем «группу» от «контейнера». Контейнер используется
для хранения других данных. Примеры контейнеров: объекты класса TCol-
lection библиотеки Turbo Vision и объекты контейнерных классов библио-
теки STL в C++ (массивы, списки, очереди).
В отличие от контейнера мы
понимаем группу как класс, который не
только хранит объекты других классов, но и обладает собственными свой-
ствами, не вытекающими из свойств его элементов.
Группа дает второй вид иерархии (первый вид − иерархия классов,
построенная на основе наследования) − иерархию объектов (иерархию ти-
па целое/часть), построенную на основе агрегации.
Реализовать
группу можно несколькими способами.
22 Имеется и вторая, более актуальная причина использования абст- рактного метода. В объектно-ориентированных языках программирования со статическими типами данных (С++, Borland Pascal) программист может вызвать метод класса, только если компилятор может определить, что класс действительно имеет такой метод. Предположим, что программист хочет определить полиморфную переменную типа TGraphObject, которая будет в различные моменты времени содержать фигуры различного типа. Это допустимо для полиморфных объектов. Тем не менее компилятор раз- решит использовать метод Draw для переменной, только если он сможет гарантировать, что в классе переменной имеется этот метод. Присоедине- ние метода Draw к классу TGraphObject обеспечивает такую гарантию, даже если метод Draw для класса TGraphObject никогда не выполняется. Естественно, для того, чтобы каждая фигура рисовалась по-своему, метод Draw должен быть виртуальным. •Группа. Объект, в который включены другие объекты. Объекты, входящие в группу, называются элементами группы. Элементы группы, в свою очередь, могут быть группой. Примеры групп: 1) окно в интерактивной программе, которое владеет такими элемен- тами, как поля ввода и редактирования данных, кнопки, списки выбора, диалоговые окна и т.д. Примерами таких окон являются объекты классов, порожденных от абстрактного класса Tgroup (TDeskTop, TWindow, TDia- log) в иерархии классов библиотеки Turbo Vision и объекты классов, по- рожденных от TWindowObject в иерархии классов библиотеки OWL; 2) агрегат, состоящий из более мелких узлов; 3) огород, состоящий из растений, системы полива и плана выращи- вания; 4) некая организационная структура (например, ФАКУЛЬТЕТ, КА- ФЕДРА, СТУДЕНЧЕСКАЯ ГРУППА). Мы отличаем «группу» от «контейнера». Контейнер используется для хранения других данных. Примеры контейнеров: объекты класса TCol- lection библиотеки Turbo Vision и объекты контейнерных классов библио- теки STL в C++ (массивы, списки, очереди). В отличие от контейнера мы понимаем группу как класс, который не только хранит объекты других классов, но и обладает собственными свой- ствами, не вытекающими из свойств его элементов. Группа дает второй вид иерархии (первый вид − иерархия классов, построенная на основе наследования) − иерархию объектов (иерархию ти- па целое/часть), построенную на основе агрегации. Реализовать группу можно несколькими способами.
Страницы
- « первая
- ‹ предыдущая
- …
- 19
- 20
- 21
- 22
- 23
- …
- следующая ›
- последняя »