Основы объектно-ориентированного программирования на языке 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