Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
7 семестр / Учебники / Все лекции С# / Все лекции С# / Лекция 16. Интерфейсы.doc
Скачиваний:
146
Добавлен:
24.02.2016
Размер:
85.5 Кб
Скачать

Interface iAction

{

void Draw(); //простой метод вывода имени монстра

int Attack(int a); //реализация атаки с заданной силой

void Die(); // метод вывода на экран сообщения о смерти монстра

int Power { get; } //свойство, вычисляющее силу монстра

}

class Monster : IAction

{

public Monster()

{

this.health = 100;

this.ammo = 100;

this.name = "Noname";

}

public Monster(string name)

: this()

{

this.name = name;

}

public Monster(int health, int ammo, string name)

{

this.health = health;

this.ammo = ammo;

this.name = name;

}

public int Health

{

get

{

return health;

}

set

{

if (value > 0) health = value;

else health = 0;

}

}

public int Ammo

{

get

{

return ammo;

}

set

{

if (value > 0) ammo = value;

else ammo = 0;

}

}

public string Name

{

get

{

return name;

}

}

public void Passport()

{

Console.WriteLine("Monster {0} \t health ={1} ammo={2}", name, health, ammo);

}

//ДАЛЕЕ РЕАЛИЗУЮТСЯ ВСЕ МЕТОДЫ ИНТЕРФЕЙСА

public void Draw()

{ Console.WriteLine("Здесь был монстр " + name); }

public int Attack(int a)

{

ammo -= a;

if (ammo > 0) Console.WriteLine("ба-бах!");

else ammo = 0;

return ammo;

}

public void Die()

{ Console.WriteLine("Монстр " + name + "умер"); health = 0; }

public int Power

{

get { return ammo * health; }

}

string name;

int health, ammo;

}

class Program

{

static void Main(string[] args)

{

Monster Вася = new Monster(50, 50, "Вася как класс ");

Вася.Draw();

IAction IВася = new Monster(10, 10, "Вася как интерфейс ");

IВася.Draw();

Вася.Passport();

((Monster)IВася).Passport();

IВася.Attack(10);

Вася.Attack(20);

Console.WriteLine("У монстра "+ Вася.Name+ "сила равна "+Convert.ToString (((IAction)Вася).Power));

Console.WriteLine("У монстра " + ((Monster)IВася).Name + "сила равна " + Convert.ToString(IВася.Power));

if (Вася.Ammo <= 0) Вася.Die();

if (((Monster)IВася).Ammo <= 0) IВася.Die();

Console.ReadLine();

}

}

}