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 void TurnOnAC()
{
Console.WriteLine("Кондиционер включен.");
}
public override void Start()
{
Console.WriteLine("Автомобиль начал движение.");
}
}
class Bike : Vehicle
{
public string Type { get; set; }
public override void ShowInfo()
{
base.ShowInfo();
Console.WriteLine($"Тип велосипеда: {Type}");
}
public override void Start()
{
Console.WriteLine("Велосипед отправился в путь.");
}
}
class Bus : Vehicle
{
public int PassengerCapacity { get; set; }
public override void ShowInfo()
{
base.ShowInfo();
Console.WriteLine($"Вместимость: {PassengerCapacity} пассажиров");
}
public override void Start()
{
Console.WriteLine("Автобус тронулся с места.");
}
}
class Truck : Vehicle
{
public double CargoCapacity { get; set; }
public override void ShowInfo()
{
base.ShowInfo();
Console.WriteLine($"Грузоподъёмность: {CargoCapacity} тонн");
}
public void LoadCargo(double weight)
{
if (weight <= CargoCapacity)
Console.WriteLine($"Груз загружен успешно ({weight} тонн)");
else
Console.WriteLine("Превышена грузоподъёмность!");
}
public override void Start()
{
Console.WriteLine("Грузовик двинулся вперёд.");
}
}
class Program
{
static void Main(string[] args)
{
var car = new Car { Brand = "Toyota", Speed = 120, NumberOfDoors = 4 };
var bike = new Bike { Brand = "Giant", Speed = 30, Type = "Горный" };
var bus = new Bus { Brand = "Mercedes", Speed = 80, PassengerCapacity = 50 };
var truck = new Truck { Brand = "Volvo", Speed = 90, CargoCapacity = 10 };
Console.WriteLine("Информация о транспортных средствах:");
car.ShowInfo();
car.Start();
car.TurnOnAC();
Console.WriteLine();
bike.ShowInfo();
bike.Start();
Console.WriteLine();
bus.ShowInfo();
bus.Start();
Console.WriteLine();
truck.ShowInfo();
truck.Start();
truck.LoadCargo(8); // Загрузка груза весом 8 тонн
truck.LoadCargo(12); // Попытка загрузить груз больше грузоподъемности
}
}
}