Студопедия Главная Случайная страница Обратная связь

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

Абстрактные классы





С наследованием тесно связан еще один важный механизм проектирования семейства классов - механизм абстрактных классов. Начну с определений.

Определение. Класс называется абстрактным, если он имеет хотя бы один абстрактный метод.

Определение. Метод называется абстрактным, если при определении метода задана его сигнатура, но не задана реализация метода.

Объявление абстрактных методов и абстрактных классов должно сопровождаться модификатором abstract. Поскольку абстрактные классы не являются полностью определенными классами, нельзя создавать объекты абстрактных классов. Абстрактные классы могут иметь потомков, частично или полностью реализующих абстрактные методы родительского класса. Абстрактный метод представляет виртуальный метод, переопределяемый потомком, поэтому к ним применяется стратегия динамического связывания.

Абстрактные классы являются одним из важнейших инструментов объектно-ориентированного проектирования классов. Проектирование типа данных начинается с описания абстрактного типа данных - АТД. Абстрактный класс является программной реализацией АТД. На этом уровне нет необходимости задавать представление данных - поля класса. Нужно лишь задать операции, выполняемые над данными, - сервисы класса, предоставляемые клиентам. При этом операции задаются с точностью до сигнатуры и спецификаций, но без их реализации.

Абстрактный класс Stack

Рассмотрим проектирование абстрактного класса Stack, описывающего стек целых чисел. Определим над стеком четыре основные операции - поместить элемент в стек, удалить элемент с вершины стека, прочитать элемент на вершине без его удаления, проверить стек на пустоту. Вот описание абстрактного класса Stack, хранящего целые числа:

/// <summary>

/// Абстрактный стек целых чисел

/// Соперациями: Put, Remove, Item, IsEmpty

/// </summary>

public abstract class Stack

{

/// <summary>

/// Втолкнуть элемент item в стек

/// </summary>

/// <param name="item">Целоечисло</param>

public abstract void Put(int item);

 

/// <summary>

/// Предусловие: Стек не пуст!

/// Удалить элемент в вершине стека

/// </summary>

public abstract void Remove();

 

/// <summary>

/// Предусловие: Стек не пуст!

/// Прочитать элемент в вершине стека

/// </summary>

public abstract int Item();

 

/// <summary>

/// Определить, пуст ли стек

/// </summary>

/// <returns>true, еслипуст, иначе false</returns>

publicabstractboolIsEmpty();

}

Описание класса содержит только сигнатуры методов класса и их спецификацию, заданную тэгами summary. Для операций Remove и Item заданы предусловия, предупреждающие о том, что операции определены только для не пустого стека. Ответственность за выполнение предусловий лежит на клиенте, работающем со стеком.







Дата добавления: 2015-09-06; просмотров: 431. Нарушение авторских прав; Мы поможем в написании вашей работы!




Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...


Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...


Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

В теории государства и права выделяют два пути возникновения государства: восточный и западный Восточный путь возникновения государства представляет собой плавный переход, перерастание первобытного общества в государство...

Закон Гука при растяжении и сжатии   Напряжения и деформации при растяжении и сжатии связаны между собой зависимостью, которая называется законом Гука, по имени установившего этот закон английского физика Роберта Гука в 1678 году...

Характерные черты официально-делового стиля Наиболее характерными чертами официально-делового стиля являются: • лаконичность...

Принципы и методы управления в таможенных органах Под принципами управления понимаются идеи, правила, основные положения и нормы поведения, которыми руководствуются общие, частные и организационно-технологические принципы...

ПРОФЕССИОНАЛЬНОЕ САМОВОСПИТАНИЕ И САМООБРАЗОВАНИЕ ПЕДАГОГА Воспитывать сегодня подрастающее поколение на со­временном уровне требований общества нельзя без по­стоянного обновления и обогащения своего профессио­нального педагогического потенциала...

Эффективность управления. Общие понятия о сущности и критериях эффективности. Эффективность управления – это экономическая категория, отражающая вклад управленческой деятельности в конечный результат работы организации...

Studopedia.info - Студопедия - 2014-2025 год . (0.01 сек.) русская версия | украинская версия