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