Интерфейсы или наследование - C#
Формулировка задачи:
Добрый день, помогите с реализацией программы:
Я хочу написать в консоли мини-игрушку. В ней должен быть класс Человек, класс Башня и два интерфейса: стрелять и ходить. Как мне реализовать интерфейсы, чтобы, например, человек мог и ходить и стрелять, а башня могла только стрелять, только начинаю учить интерфейсы и немного не понимаю, как их реализовать в моей идее.
Решение задачи: «Интерфейсы или наследование»
textual
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApplication1
- {
- class Human : IWalking, IShooter
- {
- public string Name { get; set; }
- public void WalkInConsole(int countOfSteps)
- {
- // Реализация ходьбы
- }
- public Human(string name)
- {
- Name = name;
- }
- public void ShootInConsole(int countOfShoots)
- {
- // человек стреляет пулями
- for (int i = 0; i < countOfShoots; i++) Console.Write('.');
- Console.WriteLine();
- }
- }
- class Tower : IShooter
- {
- public string Name { get; set; }
- public Tower(string name)
- {
- Name = name;
- }
- public void ShootInConsole(int countOfShoots)
- {
- // башня стреляет ядрами
- for (int i = 0; i < countOfShoots; i++) Console.Write('*');
- Console.WriteLine();
- }
- }
- interface IShooter
- {
- string Name { get; set; }
- void ShootInConsole(int countOfShots);
- }
- interface IWalking
- {
- void WalkInConsole(int countOfSteps);
- }
- class Program
- {
- static void Main(string[] args)
- {
- Console.WriteLine("Human VS Towers\n");
- Human human = new Human("Tom");
- Tower tower = new Tower("EastTower");
- IShooter[] stalkers = new IShooter[] { human, tower };
- Random rand = new Random();
- foreach (var stalker in stalkers)
- {
- Console.WriteLine("{0} with name {1} shooting: ", stalker.GetType().Name, stalker.Name);
- stalker.ShootInConsole(rand.Next(5, 15));
- Console.WriteLine();
- }
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д