Книга: Описание языка PascalABC.NET
Реализация нескольких интерфейсов
Реализация нескольких интерфейсов
Несколько интерфейсов могут содержать одинаковые методы или свойства. При наследовании от таких интерфейсов такие одинаковые методы или свойства сливаются в один:
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) - ошибка компиляции
- 9.4.1. Реализация графа в виде матрицы смежности
- Одновременный запуск нескольких копий сервера (multi-instancing)
- Реализация языка SQL
- 9.2.1. Более строгая реализация стека
- 3.5 Проблемы доступа при использовании нескольких протоколов
- 9.2 Реализация массива ftAID на платформе Windows NT
- Я работаю на компьютере не один. Как настроить Windows для нескольких пользователей?
- Реализация семафоров в Linux
- 16.8. Реализация отношений в Core Data
- 12.5. Другие библиотеки для создания графических интерфейсов
- Построение диаграммы на основе данных нескольких рабочих листов
- 8.8.5. Шаг 4. Задание интерфейсов классов