»Нтерфейси не можуть мати конструкторів і деструкторів, так як описувані в них методи реалізуютс¤ тільки в рамках підтримують їх класів, які називаютс¤ компонентними (co-classes). ќднако в даній книзі термін «компонентний клас» має самосто¤тельное значення, тому замість нього стосовно до інтерфейсів підтримують класи будемо називати інтерфейсними.
≈слі клас підтримує інтерфейс, ім¤ цього інтерфейсу указиваетс¤ при об'¤вленіі класу в списку його батьків:
¬ відміну від звичайного класу, інтерфейсний клас може мати більше одного батьківського інтерфейсу:
type IMylnterface »interface
¬ будь-якому випадку в розділі реалізації интерфейсного класу необхідно описати відповідні інтерфейсні методи. ѕусть, наприклад, об'¤влен наступний інтерфейс:
ѕусть також об'¤влен підтримує його інтерфейсний клас:
"Тоді в розділі implementation слід вказати реалізацію методів:
"Тепер можна об'¤віть інтерфейсний об'єкт класу IPaint, щоб з його допомогою намалювати коло і квадрат:
Ќесмотр¤ на те що інтерфейс завжди об'¤вл¤етс¤ до об'¤влені¤ підтримує його интерфейсного класу і, отже, відомий компіл¤тору, його методи об¤зательно повинні бути перераховані в об'¤вленіі интерфейсного класу. ¬ нашому випадку просте об'¤вленіе интерфейсного класу, як це показано нижче, було б помилкою: компіл¤тор зажадав би вставити опис методів CirclePaint і RectPaint.