Основы объектно-ориентированного программирования на языке C# book | Page 160

7 Класи using System; namespace CombiInterface { interface Idraw // оголошення iнтерфейсу { void Display(); void Draw(); } interface Igeometric // оголошення iнтерфейсу { void Display(); void Perimeter(); void Area (); } interface Ifigure : Idraw, Igeometric // оголошення комбiнованого iнтерфейсу { } class Rectangle : Ifigure //спадкування комбiнованого iнтерфейсу { string Name="Rectangle"; double a = 4.8; double b = 3.7; void Idraw.Draw() //явна реалiзацiя iнтерфейсу { Console.WriteLine("Rectangle, a={0}, b={1}", a, b); } void Idraw.Display() //явна реалiзацiя iнтерфейсу { Console.WriteLine(Name); } void Igeometric.Perimeter() // явна реалiзацiя iнтерфейсу { Console.WriteLine("L={0}", 2 * a + 2 * b); } void Igeometric.Display() //явна реалiзацiя iнтерфейсу { Console.WriteLine(Name); } void Igeometric.Area() // явна реалiзацiя iнтерфейсу { Console.WriteLine("S={0}", a * b / 2); } } class Program { static void Main(string[] args) { Rectangle Figure = new Rectangle(); Ifigure PointerIfigure = Figure as Ifigure; if (PointerIfigure != null) { PointerIfigure.Draw(); PointerIfigure.Area(); PointerIfigure.Perimeter(); } 160