с атрибутами операторах Еа, служащих
Информация же об ассоциированных с атрибутами операторах Еа, служащих для вычисления значений этих атрибутов, не является необходимой для использования объектов класса С (естественно, речь идет об использовании в операциях, основанных на реляционной алгебре), и, фактически, описывает некоторую реализацию схемы объектов класса . Это позволяет утверждать, что предлагаемый подход позволяет реализовать принцип инкапсуляции [4,1] - один из основных принципов объектно-ориентированного программирования, предполагающий разделения спецификации и реализации объекта.
Наследование.
Еще одним важным принципом, составляющим объектно-ориентированную парадигму, является принцип наследования [4], позволяющий определять новые классы на основе уже существующих. Отношение между классами, возникающее в процессе наследования, описывают существующую между ними связь "обобщение-специализация", причем класс-наследник является специализацией родительского класса, который, в свою очередь, обобщает все свои классы-наследники.
Рассмотрим класс С со спецификацией publicSC = {oa1:R1, oa2:R2,…, oan:Rn}. Предположим, что для этого класса определен реляционный оператор E
С.E(oa1, … , oan)
Рассмотрим класс Сi, являющийся наследником класса C. Спецификация класса Сi определяется как publicSCi = SC И {oan+1:Rn+1,…, oap:Rp } = {oa1:R1, oa2:R2,…, oan:Rn, oan+1:Rn+1,…, oap:Rp }. Поскольку объекты класса Ci содержат те же атрибуты, определенные на тех же реляционных доменах (rdom), что и в объекты класса С, то можно утверждать, что оператор Е применим и к объектам любых классов Ci являющихся наследниками класса C. Это позволяет рассматривать объекты классов-наследников как объекты родительского класса С.
В свете этого имеет смысл более подробно рассмотреть отношения, существующих между множеством
O объектов и множеством
C классов. Можно выделить два типа отношений. Первое, традиционно обозначаемое как отношение ISA, характеризуется фразой "объект oi является объектом класса C".
Содержание Назад Вперед