32.Объектно-ориентированная
реализация
В современных объектно-ориентированных языках
программирования каждый объект является значением, относящимся к определённому
классу. Класс представляет собой объявленный программистом составной тип
данных, имеющий в составе:
Поля данных
Параметры
объекта (конечно, не все, а только необходимые в программе), задающие его
состояние (свойства объекта предметной области). Иногда поля данных объекта
называют свойствами объекта, из-за чего возможна путаница. Физически поля представляют
собой значения (переменные, константы), объявленные как принадлежащие классу.
Методы
Процедуры
и функции, связанные с классом. Они определяют действия, которые можно
выполнять над объектом такого типа, и которые сам объект может выполнять.
Классы могут наследоваться друг от друга.
Класс-потомок получает все поля и методы класса-родителя, но может дополнять их
собственными либо переопределять уже имеющиеся.
Большинство языков программирования поддерживает только единичное наследование
(класс может иметь только один класс-родитель), лишь в некоторых допускается
множественное наследование — порождение класса от двух или более
классов-родителей. Множественное наследование создаёт целый ряд проблем, как
логических, так и чисто реализационных, поэтому в полном объёме его поддержка
не распространена. Вместо этого в 1990-е годы появилось и стало активно
вводиться в объектно-ориентированные языки понятие интерфейса. Интерфейс —
это класс без полей и без реализации, включающий только заголовки методов. Если
некий класс наследует (или, как говорят, реализует) интерфейс, он должен
реализовать все входящие в него методы. Использование интерфейсов предоставляет
относительно дешёвую альтернативу множественному наследованию.
Взаимодействие объектов в абсолютном большинстве
случаев обеспечивается вызовом ими методов друг друга.