using System;
namespace VehicleHierarchy
{
// Базовый класс транспортного средства
class Vehicle
{
public string Brand { get; set; }
public int Speed { get; set; }
public virtual void ShowInfo()
{
Console.WriteLine($"Марка: {Brand}, Скорость: {Speed} км/ч");
}
public virtual void Start()
{
Console.WriteLine($"{Brand} начал движение.");
}
}
// Класс автомобиля
class Car : Vehicle
{
public int NumberOfDoors { get; set; }
public override void ShowInfo()
{
base.ShowInfo();
Console.WriteLine($"Количество дверей: {NumberOfDoors}");
}
public override void Start()
{
Console.WriteLine($"{Brand} автомобиль начал движение.");
}
}
// Класс велосипеда
class Bike : Vehicle
{
public string Type { get; set; }
public override void ShowInfo()
{
base.ShowInfo();
Console.WriteLine($"Тип велосипеда: {Type}");
}
public override void Start()
{
Console.WriteLine($"{Brand} велосипед отправился в путь.");
}
}
// Класс автобуса
class Bus : Vehicle
{
public int PassengerCapacity { get; set; }
public override void ShowInfo()
{
base.ShowInfo();
Console.WriteLine($"Вместимость: {PassengerCapacity} пассажиров");
}
public override void Start()
{
Console.WriteLine($"{Brand} автобус отъехал от остановки.");
}
}
// Класс грузовика
class Truck : Vehicle
{
public double CargoCapacity { get; set; }
public override void ShowInfo()
{
base.ShowInfo();
Console.WriteLine($"Грузоподъемность: {CargoCapacity} тонн");
}
public override void Start()
{
Console.WriteLine($"{Brand} грузовик двинулся в путь.");
}
}
class Program
{
static void Main()
{
Car myCar = new Car { Brand = "Toyota", Speed = 120, NumberOfDoors = 4 };
Bike myBike = new Bike { Brand = "Giant", Speed = 30, Type = "Горный" };
Bus myBus = new Bus { Brand = "MAN", Speed = 80, PassengerCapacity = 50 };
Truck myTruck = new Truck { Brand = "КамАЗ", Speed = 90, CargoCapacity = 15 };
// Информация о транспортных средствах
Console.WriteLine("*** Информация о транспортных средствах ***\n");
myCar.ShowInfo();
myBike.ShowInfo();
myBus.ShowInfo();
myTruck.ShowInfo();
// Запуск транспортных средств
Console.WriteLine("\n*** Запуск транспортных средств ***\n");
myCar.Start();
myBike.Start();
myBus.Start();
myTruck.Start();
}
}
}