Студопедия

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника



Абстрактные объекты




Читайте также:
  1. Бухгалтерский управленческий учет: сущность, предмет, объекты, значение и его место в информационной системе организации.
  2. В). Сущность инвестиций, их классификация и роль в экономическом и социальном развитии общества. Объекты и субъекты инвестиционной деятельности
  3. Важнейшие объекты природы, истории и культуры как основа развития туризма в Московской области.
  4. Валютное регулирование и валютный контроль: понятие, органы, объекты.
  5. Вещи как объекты гражданских прав ( понятие, классификация вещей, правовое значение).
  6. Вещи как объекты гражданских прав. Классификация вещей. Понятие имущества.
  7. Вещи как объекты гражданских прав. Понятие, классификации вещей и их правовое значение.
  8. Вещи как объекты гражданских прав. Правовое значение классификаций вещей.
  9. Водные объекты общего пользования.

Абстрактные объекты – это объекты, экземпляры которых нельзя создать (по аналогии с абстрактными классами в ООП). Такие объекты создаются для того, чтобы в последствии выступить в качестве супертипов в наследовании.

Для того чтобы сделать объект абстрактным, в его объявление надо добавить параметр NOT INSTANTIABLE. Указание параметра NOT FINAL в этом случае является обычным, так как мало практического смысла в том, чтобы создавать абстрактный объект, который нельзя унаследовать.

 

Пример:

Допустим, есть иерархия объектов (см. рис. 1):

 

 

Рис. 1. Иерархия объектов

 

DROP TYPE sales_manager_typ;

DROP TYPE boss_typ;

DROP TYPE employee_typ;

DROP TYPE department_typ;

 

-- создадим объект department_typ для хранения информации об отделе:

 

CREATE OR REPLACE TYPE department_typ IS OBJECT(

Dep_Id NUMBER,

Caption varchar2(50)

);

/

 

-- создадим абстрактный объект employee_typ, обладающий основным набором свойств,

-- а также метод, определяющий количество отработанных работником дней:

 

CREATE OR REPLACE TYPE employee_typ IS OBJECT(

Name VARCHAR2(30),

Hire_Day DATE,

MEMBER FUNCTION DaysAtCompany RETURN NUMBER

)

NOT INSTANTIABLE

NOT FINAL;

/

 

CREATE OR REPLACE TYPE BODY employee_typ IS

MEMBER FUNCTION DaysAtCompany RETURN NUMBER IS

BEGIN

RETURN TRUNC(sysdate-Hire_Day);

END;

END;

/

 

-- создадим объект boss_typ, наследующий все свойства и методы объекта

-- employee_typ (для простоты примера данный объект не будет иметь собственных

-- свойств и методов):

 

CREATE OR REPLACE TYPE boss_typ UNDER employee_typ();

/

 

-- создадим объект sales_manager_typ, наследующий все свойства и методы объекта

-- employee_typ и имеющий дополнительное свойство, обозначающее принадлежность к

-- отделу:

 

CREATE OR REPLACE TYPE sales_manager_typ UNDER employee_typ(

Dep department_typ

);

/

 

Примечание: данные о взаимозависимостях типов можно посмотреть в таблице USER_TYPES:

SELECT supertype_name, type_name

FROM user_types

ORDER BY 1, 2;

 


Дата добавления: 2015-08-05; просмотров: 6; Нарушение авторских прав







lektsii.com - Лекции.Ком - 2014-2021 год. (0.004 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты