Основы объектно-ориентированного программирования на языке C# book | Page 159
7.11 Комбiнований iнтерфейс
void Draw();
}
i iнтерфейс для обчислення геометричних властивостей фiгур
interface Igeometric // оголошення iнтерфейсу
{
void Perimeter();
void Area ();
}
Можна побудувати комбiнований iнтерфейс вигляду:
interface Ifigure : Idraw, Igeometric // оголошення комбiнованого
iнтерфейсу
{
}
Тепер при написаннi класу Rectangle ми можемо указувати iнтер-
фейс Ifigure i використовуємо явну реалiзацiю
class Rectangle : Ifigure //спадкування комбiнованого iнтерфейсу
{
double a = 4.8;
double b = 3.7;
void Idraw.Draw() //явна реалiзацiя iнтерфейсу
{
Console.WriteLine("Rectangle, a={0}, b={1}", a, b);
}
void Igeometric.Perimeter() // явна реалiзацiя iнтерфейсу
{
Console.WriteLine("L={0}", 2 * a + 2 * b);
}
void Igeometric.Area() // явна реалiзацiя iнтерфейсу
{
Console.WriteLine("S={0}", a * b / 2);
}
}
Покажемо, як користуватись комбiнованим iнтерфейсом. Для поча-
тку створюємо екземпляр класу Rectangle .
Rectangle Figure = new Rectangle();
Потiм оголошуємо змiнну для посилання на iнтерфейс Ifigure .
Ifigure PointerIfigure = Figure as Ifigure;
I за допомогою цього посилання PointerIfigure тепер можна звер-
татися до методiв iнтерфейсу Ifigure :
PointerIfigure.Draw();
PointerIfigure.Area();
PointerIfigure.Perimeter();
Або остаточно можна записати таку програму:
159