Создание интерфейсов транспортных средств - C#

Узнай цену своей работы

Формулировка задачи:

Создайте три интерфейса, каждый с двумя методами. Наследуйте новый интерфейс от этих трех, добавьте новый метод. Создайте класс, реализующий этот новый интерфейс и так же наследующий от конкретного класса. Теперь напишите четыре метода, каждый из которых получают один из четырех интерфейсов в качестве аргумента. В main( ), создайте объект вашего класса и передайте его каждому из методов. Создайте интерфейс, реализующий список (цвета, созвездия, объекты, ..) и распечатайте их значения в методе main.

Решение задачи: «Создание интерфейсов транспортных средств»

textual
Листинг программы
using System;
 
namespace ConsoleApplication
{
    internal class Program
    {
        private static void Main()
        {
            ICrazyFantasyEngineer chimera = new CrazyFantasyEngineer("Vasya", 3, 100.5, 11.3, 2, 10, 9);
            PrintVehicle(chimera);
            PrintCar(chimera);
            PrintTrain(chimera);
            PrintCrazyFantasyEngineer(chimera);
        }
 
        private static void PrintCar(ICar car)
        {
            Console.WriteLine("I'm car!");
            Console.WriteLine("Body weight: {0}", car.GetBodyWeight());
            Console.WriteLine("Tire size: {0}", car.GetTireSize());
            Console.WriteLine();
        }
 
        private static void PrintCrazyFantasyEngineer(ICrazyFantasyEngineer chimera)
        {
            Console.WriteLine("My creator hates me!");
            Console.WriteLine("Number of unicorns: {0}", chimera.GetNumberOfUnicorns());
            Console.WriteLine();
        }
 
        private static void PrintTrain(ITrain train)
        {
            Console.WriteLine("I'm train!");
            Console.WriteLine("Number of wagons: {0}", train.GetNumberOfWagons());
            Console.WriteLine("Length: {0}", train.GetLength());
            Console.WriteLine();
        }
 
        private static void PrintVehicle(IVehicle vehicle)
        {
            Console.WriteLine("I'm vehicle!");
            Console.WriteLine("Name: {0}", vehicle.GetName());
            Console.WriteLine("Number of passengers: {0}", vehicle.GetNumberOfPassengers());
            Console.WriteLine();
        }
    }
 
    internal interface IVehicle
    {
        string GetName();
 
        int GetNumberOfPassengers();
    }
 
    internal abstract class Vehicle : IVehicle
    {
        protected Vehicle(string name, int numberOfPassengers)
        {
            this.Name = name;
            this.NumberOfPassengers = numberOfPassengers;
        }
 
        protected string Name { get; set; }
 
        protected int NumberOfPassengers { get; set; }
 
        public string GetName()
        {
            return this.Name;
        }
 
        public int GetNumberOfPassengers()
        {
            return this.NumberOfPassengers;
        }
    }
 
    internal interface ICar
    {
        double GetBodyWeight();
 
        double GetTireSize();
    }
 
    internal interface ITrain
    {
        int GetLength();
 
        int GetNumberOfWagons();
    }
 
    internal interface ICrazyFantasyEngineer : IVehicle, ICar, ITrain
    {
        int GetNumberOfUnicorns();
    }
 
    internal sealed class CrazyFantasyEngineer : Vehicle, ICrazyFantasyEngineer
    {
        private readonly double bodyWeight;
 
        private readonly int length;
 
        private readonly int numberOfUnicorns;
 
        private readonly int numberOfWagons;
 
        private readonly double tireSize;
 
        public CrazyFantasyEngineer(string name, int numberOfPassengers,
            double bodyWeight, double tireSize, int numberOfWagons, int length, int numberOfUnicorns)
            : base(name, numberOfPassengers)
        {
            this.bodyWeight = bodyWeight;
            this.tireSize = tireSize;
            this.numberOfWagons = numberOfWagons;
            this.length = length;
            this.numberOfUnicorns = numberOfUnicorns;
        }
 
        public double GetBodyWeight()
        {
            return this.bodyWeight;
        }
 
        public int GetLength()
        {
            return this.length;
        }
 
        public int GetNumberOfUnicorns()
        {
            return this.numberOfUnicorns;
        }
 
        public int GetNumberOfWagons()
        {
            return this.numberOfWagons;
        }
 
        public double GetTireSize()
        {
            return this.tireSize;
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.556 из 5
Похожие ответы