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

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

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





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

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

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

Объявление абстрактных методов и абстрактных классов должно сопровождаться модификатором 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. Нарушение авторских прав; Мы поможем в написании вашей работы!




Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений...


Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...


Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...


Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

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

Йодометрия. Характеристика метода Метод йодометрии основан на ОВ-реакциях, связанных с превращением I2 в ионы I- и обратно...

Броматометрия и бромометрия Броматометрический метод основан на окислении вос­становителей броматом калия в кислой среде...

Понятие метода в психологии. Классификация методов психологии и их характеристика Метод – это путь, способ познания, посредством которого познается предмет науки (С...

ЛЕКАРСТВЕННЫЕ ФОРМЫ ДЛЯ ИНЪЕКЦИЙ К лекарственным формам для инъекций относятся водные, спиртовые и масляные растворы, суспензии, эмульсии, ново­галеновые препараты, жидкие органопрепараты и жидкие экс­тракты, а также порошки и таблетки для имплантации...

Тема 5. Организационная структура управления гостиницей 1. Виды организационно – управленческих структур. 2. Организационно – управленческая структура современного ТГК...

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