Реализация нескольких интерфейсов

Реализация нескольких интерфейсов

Несколько интерфейсов могут содержать одинаковые методы или свойства. При наследовании от таких интерфейсов такие одинаковые методы или свойства сливаются в один:

type

IShape = interface

procedure Draw;

property X: integer read;

property Y: integer read;

end;

IBrush = interface

procedure Draw;

property Size: integer read;

end;

Brush = class(IShape,IBrush)

// метод Draw реализуется единожды

end;

Чтобы решить проблему с одинаковыми именами в интерфейсах, в .NET классы могут реализовывать методы интерфейсов так называемым явным образом, так что вызов метода интерфейса для переменной класса возможен только после явного приведения к типу интерфейса. В PascalABC.NET такие классы определять нельзя, однако, пользоваться такими классами, реализованными в .NET, можно. Например, тип integer явно реализует интерфейс IComparable:

var i: integer := 1;

var res : integer := IComparable(i).CompareTo(2);

// i.CompareTo(2) - ошибка компиляции

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

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

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

22.6. Связывание с адресами интерфейсов

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

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


Настройка сетевых интерфейсов

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

Настройка сетевых интерфейсов Загрузка драйвера — это лишь первое действие, которое надо выполнить, чтобы обеспечить доступ к сетевому интерфейсу. Для того чтобы интерфейс можно было использовать, ему необходимо присвоить IP-адрес и выполнить дополнительные настройки,


13.2. Настройка сетевых интерфейсов

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

13.2. Настройка сетевых интерфейсов Интерфейсом с точки зрения ОС является устройство, через которое система получает и передает IP-пакеты. Роль интерфейса локальной сети может выполнять одно (или несколько) из следующих устройств: Ethernet-карта, ISDN-адаптер или модем,


22.8.3 Адреса интерфейсов IPv6

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

22.8.3 Адреса интерфейсов IPv6 Каждый интерфейс версии 6 имеет список соответствующих ему адресов. Как минимум, список содержит уникальный адрес локальной связи (link local address), имеющий формат: 1111111010 (10 бит) 00…00 Уникальный адрес технологии связи Каждому узлу необходим способ


11.3. Оценка конструкций интерфейсов

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

11.3. Оценка конструкций интерфейсов Все данные стили интерфейсов продолжают существовать до сих пор благодаря тому, что они адаптированы для различных задач. Принимая решение о конструкции проекта, важно знать, как подбирать (или комбинировать) приемлемые стили для


Определение интерфейсов в C#

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

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


Реализация интерфейсов в C#

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

Реализация интерфейсов в C# Чтобы расширить функциональные возможности класса (или структуры) путем поддержки типов интерфейса, нужно просто указать в определении класса (или структуры) список соответствующих типов, разделив их запятыми. Непосредственный базовый класс


Построение иерархии интерфейсов

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

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


Реализация интерфейсов в Visual Studio 2005

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

Реализация интерфейсов в Visual Studio 2005 Программирование на основе интерфейсов – это мощная техника программирования, но процесс реализации интерфейсов может предполагать ввод программного кода вручную в очень больших объемах. Поскольку интерфейсы представляют собой


Создание обобщенных интерфейсов

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

Создание обобщенных интерфейсов Вы уже видели при рассмотрении пространства имен System.Collections. Generiс, что обобщенные интерфейсы в C# также допустимы (например, IEnumerable‹Т›). Вы, конечно, можете определить свои собственные обобщенные интерфейсы (как с ограничениями, так и без


Отображение реализованных интерфейсов

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

Отображение реализованных интерфейсов Теперь построим метод ListInterfaces(), который будет печатать имена интерфейсов, поддерживаемых указанным на входе типом. Единственным заслуживающим внимания моментом здесь является вызов GetInterfaces(), возвращающий массив System.Types. Это


Определение и реализация интерфейсов

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

Определение и реализация интерфейсов Как бы это странно ни выглядело, типы интерфейса определяются в CIL с помощью директивы .class. Но когда директива .сlass сопровождается атрибутом interface, соответствующий тип реализуется, как тип интерфейса CTS (Common Type System – общая система


Дизайн интерфейсов — это копирайтинг

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

Дизайн интерфейсов — это копирайтинг Каждая буква имеет значениеДизайн интерфейсов — это копирайтинг. Лучшие интерфейсы написаны. Если вы думаете что каждый пиксель, каждая иконка, каждый шрифт имеет значение, вы поверите и в значимость каждой буквы. Когда вы


40 Редактирование интерфейсов

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

40 Редактирование интерфейсов Моя компания только что закончила редактировать пользовательский интерфейс. Официально контракт предусматривал проведение «экспертной оценки юзабилити», но на самом деле мы занимались редактированием. Хороший пользовательский интерфейс


Минимум интерфейсов

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

Минимум интерфейсов Правило Минимума Интерфейсов ограничивает общее число информационных каналов, связывающих модули системы:Каждый модуль должен поддерживать связь с возможно меньшим числом других модулей.Связь между модулями может осуществляться различными