Интерфейсы или наследование - 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(); } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д