fork download
  1. using System;
  2.  
  3. namespace VehicleHierarchy
  4. {
  5. class Vehicle
  6. {
  7. public string Brand { get; set; }
  8. public int Speed { get; set; }
  9.  
  10. public virtual void ShowInfo()
  11. {
  12. Console.WriteLine($"Марка: {Brand}, Скорость: {Speed} км/ч");
  13. }
  14.  
  15. public virtual void Start()
  16. {
  17. Console.WriteLine($"{Brand} начал движение.");
  18. }
  19. }
  20.  
  21. class Car : Vehicle
  22. {
  23. public int NumberOfDoors { get; set; }
  24.  
  25. public override void ShowInfo()
  26. {
  27. base.ShowInfo();
  28. Console.WriteLine($"Количество дверей: {NumberOfDoors}");
  29. }
  30.  
  31. public void TurnOnAC()
  32. {
  33. Console.WriteLine("Кондиционер включен.");
  34. }
  35.  
  36. public override void Start()
  37. {
  38. Console.WriteLine("Автомобиль начал движение.");
  39. }
  40. }
  41.  
  42. class Bike : Vehicle
  43. {
  44. public string Type { get; set; }
  45.  
  46. public override void ShowInfo()
  47. {
  48. base.ShowInfo();
  49. Console.WriteLine($"Тип велосипеда: {Type}");
  50. }
  51.  
  52. public override void Start()
  53. {
  54. Console.WriteLine("Велосипед отправился в путь.");
  55. }
  56. }
  57.  
  58. class Bus : Vehicle
  59. {
  60. public int PassengerCapacity { get; set; }
  61.  
  62. public override void ShowInfo()
  63. {
  64. base.ShowInfo();
  65. Console.WriteLine($"Вместимость: {PassengerCapacity} пассажиров");
  66. }
  67.  
  68. public override void Start()
  69. {
  70. Console.WriteLine("Автобус тронулся с места.");
  71. }
  72. }
  73.  
  74. class Truck : Vehicle
  75. {
  76. public double CargoCapacity { get; set; }
  77.  
  78. public override void ShowInfo()
  79. {
  80. base.ShowInfo();
  81. Console.WriteLine($"Грузоподъёмность: {CargoCapacity} тонн");
  82. }
  83.  
  84. public void LoadCargo(double weight)
  85. {
  86. if (weight <= CargoCapacity)
  87. Console.WriteLine($"Груз загружен успешно ({weight} тонн)");
  88. else
  89. Console.WriteLine("Превышена грузоподъёмность!");
  90. }
  91.  
  92. public override void Start()
  93. {
  94. Console.WriteLine("Грузовик двинулся вперёд.");
  95. }
  96. }
  97.  
  98. class Program
  99. {
  100. static void Main(string[] args)
  101. {
  102. var car = new Car { Brand = "Toyota", Speed = 120, NumberOfDoors = 4 };
  103. var bike = new Bike { Brand = "Giant", Speed = 30, Type = "Горный" };
  104. var bus = new Bus { Brand = "Mercedes", Speed = 80, PassengerCapacity = 50 };
  105. var truck = new Truck { Brand = "Volvo", Speed = 90, CargoCapacity = 10 };
  106.  
  107. Console.WriteLine("Информация о транспортных средствах:");
  108. car.ShowInfo();
  109. car.Start();
  110. car.TurnOnAC();
  111. Console.WriteLine();
  112.  
  113. bike.ShowInfo();
  114. bike.Start();
  115. Console.WriteLine();
  116.  
  117. bus.ShowInfo();
  118. bus.Start();
  119. Console.WriteLine();
  120.  
  121. truck.ShowInfo();
  122. truck.Start();
  123. truck.LoadCargo(8); // Загрузка груза весом 8 тонн
  124. truck.LoadCargo(12); // Попытка загрузить груз больше грузоподъемности
  125. }
  126. }
  127. }
Success #stdin #stdout 0.06s 32308KB
stdin
Standard input is empty
stdout
Информация о транспортных средствах:
Марка: Toyota, Скорость: 120 км/ч
Количество дверей: 4
Автомобиль начал движение.
Кондиционер включен.

Марка: Giant, Скорость: 30 км/ч
Тип велосипеда: Горный
Велосипед отправился в путь.

Марка: Mercedes, Скорость: 80 км/ч
Вместимость: 50 пассажиров
Автобус тронулся с места.

Марка: Volvo, Скорость: 90 км/ч
Грузоподъёмность: 10 тонн
Грузовик двинулся вперёд.
Груз загружен успешно (8 тонн)
Превышена грузоподъёмность!