7.1 Определение |
Вверх Предыдущий Следующий |
Начиная с версии 1.1, FPC поддерживает интерфейсы. Интерфейсы являются альтернативой множественного наследования (где класс может иметь несколько родительских классов), как реализовано, например, в C++. Интерфейс в основном это именованный набор методов и свойств: класс, который реализует интерфейс предоставляет все методы, как они перечислены в определении интерфейса. Класс должен реализовать все методы интерфейса: все или ничего. Из интерфейсов так же, как из классов также можно строить иерархии: интерфейс-потомок наследует (от предка(ов) другого интерфейса) все методы родительского интерфейса, а также явно указанные в его определении методы. Класс, реализующий интерфейс, должен тоже реализовать все элементы интерфейса, а также методы родительского интерфейса(ов). Интерфейс может быть однозначно определён GUID. GUID (аббревиатура Globally Unique Identifier - глобально уникальный идентификатор) это 128-битное целое число гарантированно уникальное (конечно теоритически). В системе Windows, GUID интерфейса может и должен использоваться при использовании COM. Определение интерфейса имеет следующий вид: Интерфейсный тип Наряду с этим определением необходимо отметить следующее: •Интерфейсы могут быть использованы только в режимах DELPHI или OBJFPC. •Спецификаторы не видны. Все они являются public (на самом деле, не имеет смысла делать их private или protected). •Свойства объявленные в интерфейсе могут иметь только методы для чтения и записи. •В интерфейсах нет конструкторов и деструкторов. Экземпляры интерфейсов не могут быть созданы сами по себе: вместо этого нужно создать экземпляр класса, реализующего интерфейс. •В объявлении метода можно использовать только допустимые модификаторы. В определении интерфейса не могут присутствовать модификаторы virtual, abstract или dynamic, а следовательно и override. Ниже приводятся примеры интерфейсов: IUnknown = interface ['{00000000-0000-0000-C000-000000000046}'] GUID, идентифицирующий интерфейс не является обязательным. |