Взгляд на класс как на тип

Взгляд на класс как на тип

С точки зрения типов наследование адресуется и к повторному использованию, и к расширяемости, в частности, к тому, что в предыдущем обсуждении называлось непрерывностью. Здесь ключом является динамическое связывание.

Тип - это множество объектов, характеризуемых (как мы знаем из теории АТД) определенными операциями. INTEGER описывают множество целых чисел с арифметическими операциями, POLYGON - это множество объектов с операциями vertices, perimeter и другими.

Для типов наследование представляет отношение "является", например, во фразах "каждая собака является млекопитающим", "каждое млекопитающее является животным". Аналогично, прямоугольник является многоугольником.

Что означает это отношение?

[x]. Если рассматривать значения каждого типа, то это отношение является просто отношением включения множеств: собаки образуют подмножество множества животных, экземпляры класса RECTANGLE образуют подмножество экземпляров класса POLYGON. (Это следует из определения "экземпляра" в начале этой лекции, заметим, что прямой экземпляр класса RECTANGLE не является прямым экземпляром класса POLYGON).

[x]. Если рассматривать операции, применимые к каждому типу, то сказать, что B есть A, означает, что каждая операция, применимая к A применима также и к экземплярам B. (Однако при переопределении B может создать свою собственную реализацию, которая для экземпляров B заменит реализацию, предоставленную A.)

Используя это отношение можно описывать схемы отношения "является", представляющие многие варианты типов, например, все варианты класса FIGURE. Каждая новая версия таких подпрограмм как rotate и display определяется в классе, задающем соответствующий вариант типа. В случае таблиц, например, каждый класс на графе обеспечивает свою собственную реализацию операций search, insert, delete, разумеется, за исключением тех случаев, когда для него подходит реализация родителя.

Предостережение об использовании отношения "является" ("is a"). Начинающие - но я полагаю, ни один из читател

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Взгляд из космоса

Из книги Журнал «Компьютерра» №25-26 от 12 июля 2005 года автора Журнал «Компьютерра»

Взгляд из космоса Через много-много лет неведомые нам обитатели кометы Темпеля, которых не придавило американской космической болванкой, сложат красивые легенды. О том, как к ним прилетали инопланетяне, но высадиться не смогли: и сами разбились, и полкометы снесли. А


5 Взгляд с высоты

Из книги Все под контролем: Кто и как следит за тобой автора Гарфинкель Симеон

5 Взгляд с высоты На поверхности нашей планеты, в глубине океанов и в небе над ней с неистовой силой развертывается беспорядочный проект. Проект по разворачиванию целого сонма камер, подслушивающих устройств и сенсоров, объединенный в глобальную компьютерную сеть,


Взгляд за границу

Из книги Windows Vista без напряга автора Жвалевский Андрей Валентинович

Взгляд за границу Четыре месяца спустя после выхода в свет этой книги правительство Канады приняло всеобъемлющий пакет законов, защищающих право граждан на приватность. Названный C-6 и известный также под названием «Закон о защите персональной информации и электронных


Глава 2 Взгляд на Vista

Из книги Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT автора Фролов Александр Вячеславович

Глава 2 Взгляд на Vista На первый взгляд – ничего особенного… Гомер о природе Древней Греции • Красота необыкновенная (Windows Aero)!• Боковая панель Windows• Протираем Рабочий стол• Настройка всего остального• Завершение сеансаГоворят, Windows Vista очень сильно изменилась внутри по


Самый базовый класс MFC (класс CObject)

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Самый базовый класс MFC (класс CObject) Подавляющее большинство классов библиотеки MFC наследовано от базового класса CObject, лежащего в основе всей иерархии классов этой библиотеки. Методы и элементы данных класса CObject представляют наиболее общие свойства наследованных из него


Архивный класс (класс CArchive)

Из книги Программирование КПК и смартфонов на .NET Compact Framework автора Климов Александр П.

Архивный класс (класс CArchive) Класс CArchive используется для сохранения и восстановления состояния объектов в файлах на диске. Перед использованием объекта класса CArchive он должен быть привязан к файлу – объекту класса CFile.Более подробно о процессе сохранения и восстановления


Класс CObject – основной класс MFC

Из книги С компьютером на ты. Самое необходимое автора Егоров А. А.

Класс CObject – основной класс MFC Подавляющее большинство классов из библиотеки MFC наследуются от основного класса CObject. Практически все классы, которые используются в ваших приложениях, например CView или CWinApp, унаследованы от класса CObject.Класс CObject обеспечивает наиболее общие


Взгляд на класс как на модуль

Из книги Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform автора Кёртен Роб

Взгляд на класс как на модуль С этой точки зрения наследование особенно эффективно в качестве метода повторного использования.Модуль это множество служб, предлагаемых внешнему миру. Без наследования каждому новому модулю пришлось бы самому определять все


Первый взгляд

Из книги Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/FireBird/Yaffil автора Ковязин Алексей Николаевич

Первый взгляд Устройства под управлением Windows Mobile, к которым относятся КПК и смартфоны, все глубже вторгаются в нашу жизнь. Эти устройства очень быстро эволюционируют, обзаводятся более совершенными экранами, увеличивают размер своей дисковой памяти, снабжаются


Глава 1 Первый взгляд

Из книги Новый ум короля [О компьютерах, мышлении и законах физики] автора Пенроуз Роджер

Глава 1 Первый взгляд


Взгляд со стороны клиента

Из книги Цифровая фотография. Трюки и эффекты автора Гурский Юрий Анатольевич

Взгляд со стороны клиента Мы уже намекнули, что ожидает клиент. Он ожидает интерфейс на основе файловых дескрипторов с применением стандартных функций POSIX.В действительности «под колпаком» происходит еще кое-что.Например, как в действительности клиент соединяется с


Firebird 2.0 - взгляд в будущее

Из книги автора

Firebird 2.0 - взгляд в будущее Итак, выше мы узнали о том, что сделано в рамках версии Firebird 1.5, теперь самое время поговорить о том, что нам стоит ожидать от следующей версии, которая будет носить номер 2.0. Новая версия ODS Значительная часть запланированных изменений потребует


Направляем взгляд зрителя

Из книги автора

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