Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Модуль-1-шпора-ТРПО-3.doc
Скачиваний:
20
Добавлен:
21.03.2015
Размер:
2.28 Mб
Скачать

2.4.8.Интерфейсы и абстрактные классы

Интерфейс – множество операций, составляющее спецификацию услуг, которые предоставляет класс.

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

Рисунок 2.8. Окно как абстрактный класс

Чтобы сделать редактор платформо-независимым, мы определяем платформо-независимый абстрактный класс Окно. Этот класс не содержит операций, он определяет только интерфейс для текстового редактора. Платформо-зависимые классы могут быть использованы по вашему усмотрению. Имя абстрактного класса в языке UML должно выделяться курсивом или можно использовать дескриптор {абстрактный}.

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

1

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]