.
Tuesday 22nd of May 2012    

Информация

Счетчики

Голосование

Лучшая марка телефона
 

Реклама

фильмы онлайн

фильмы онлайн


Реализация интерфейса
загрузка...

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

type Имя_класса = class (Класс_предок, Интерфейс_1, ..., Интерфейс_И)

{коллекция методов}

end;

Допустим, что мы описываем какой-то интерфейс IMyInterface, в обязанности которого входит вызов метода MyFunction():

type IMyInterface = interface

[¦{8F34D05D-C7AD-4F4C-8860-5AFC498A5FFC}']

function MyFunction : double; end;

Для того чтобы определенный в интерфейсе метод приобрел смысловую нагрузку, IMyInterface нуждается в союзнике:

type TMyObject = class(TInterfacedObject,IMyInterface)

function MyFunction : double; end;

implementation

function TMyObject.MyFunction : double; begin

Result:=Random; end;

Класс TMyObject обязан реализовать все определенные в интерфейсе методы. Для этого он декларирует и описывает свои собственные методы, названия, параметры и возвращаемые результаты которых должны точно совпадать с объявленными у интерфейса методами. Во время компиляции программы компилятор осуществит поиск совпадающих сигнатур методов класса и интерфейса и свяжет функции интерфейса с функциями класса.


загрузка...
 

Самое популярное:

bottom

карта сайта