ВУЗ:
Составители:
Рубрика:
ся к удаленному объекту так, как если бы он был ее собственным объек-
том.
Интерфейсы представляют собой частный случай описания типов.
Они объявляются с помощью зарезервированного слова interface. На-
пример:
type
IEdit = interface
procedure Copy; stdcall;
procedure Cut; stdcall;
procedure Paste; stdcall;
function Undo: Boolean; stdcall;
end;
Такое объявление эквивалентно описанию абстрактного класса в
том смысле, что провозглашение интерфейса не требует расшифровки
объявленных в нем свойств и методов.
В отличие от классов интерфейс не может содержать поля, и сле-
довательно, объявляемые в нем свойства в разделах read и write могут
ссылаться только на методы. Все объявляемые в интерфейсе члены раз-
мещаются в единственной секции public. Методы не могут быть абст-
рактными (abstract), виртуальными (virtual), динамическими (dynamic)
или перекрываемыми (override). Интерфейсы не могут иметь конструк-
торов или деструкторов, т. к. описываемые в них методы реализуются
только в рамках поддерживающих их классов, которые называются ин-
терфейсными.
Если какой-либо класс поддерживает интерфейс (т. е. является
интерфейсным), имя этого интерфейса указывается при объявлении
класса в списке его родителей:
TEditor = class(TInterfacedObject,IEdit)
procedure Copy; stdcall;
procedure Cut; stdcall;
procedure Paste; stdcall;
function Undo: Boolean; stdcall;
end;
В отличие от обычного класса интерфейсный класс может иметь
более одного родительского интерфейса:
type
IMylnterface = interface procedure Delete; stdcall;
end;
TMyEditor = class(TInterfacedObiect, lEdit, IMylnterface)
75
Страницы
- « первая
- ‹ предыдущая
- …
- 73
- 74
- 75
- 76
- 77
- …
- следующая ›
- последняя »
