namespace XYZTransportation
abstract class Vehicle : Transport
protected readonly int count = 5;
protected int numberOfWheels;
protected int maximumSpeed;
public string moves { get; set; }
class MotorVehicle : Vehicle
public MotorVehicle(string name, int wheels, int GVM, int maximumspeed)
this.maximumSpeed = maximumspeed;
public MotorVehicle(string name) : this(name, 2, 2, 2)
public MotorVehicle() : this("MotorPlane")
public static MotorVehicle operator +(MotorVehicle v1, Vehicle v2)
MotorVehicle vehicle = new MotorVehicle();
vehicle.setGvm = v1.setGvm + v2.setGvm;
vehicle.setWheels = v1.setWheels + v2.setWheels;
vehicle.setType = v1.setType + v2.setType;
public override string ToString()
return "VehicleName: " + name + ", NumberOfWheels: " + numberOfWheels + ", GVM: " + GVM + " move: " + Move() + " Operator: " + Operator();
class WaterCraft : Vehicle
public WaterCraft(string name, int wheels, int GVM, int maximumspeed)
this.setType = "WaterCraft";
this.maximumSpeed = maximumspeed;
public WaterCraft(string name) : this(name, 6, 8, 4)
public WaterCraft() : this("Underwatwer")
public static WaterCraft operator +(WaterCraft v1, Vehicle v2)
WaterCraft vehicle = new WaterCraft();
vehicle.setGvm = v1.setGvm + v2.setGvm;
vehicle.setWheels = v1.setWheels + v2.setWheels;
vehicle.setType = v1.setType + v2.setType;
public new string Operator()
public override string ToString()
return "VehicleName: " + name + ", NumberOfWheels: " + numberOfWheels + ", GVM: " + GVM + " move: " + Move() + " Operator: " +Operator();
public AirCraft(string name, int wheels, int GVM, int maximumspeed)
this.setType = "AirCraft";
this.maximumSpeed = maximumspeed;
public AirCraft(string name) : this(name, 4, 8, 6)
public AirCraft() : this("Airspace")
public static AirCraft operator +(AirCraft v1, Vehicle v2)
AirCraft vehicle = new AirCraft();
vehicle.setGvm = v1.setGvm + v2.setGvm;
vehicle.setWheels = v1.setWheels + v2.setWheels;
vehicle.setType = v1.setType + v2.setType;
public new string Operator()
public override string ToString()
return "VehicleName: " + name + ", NumberOfWheels: " + numberOfWheels + ", GVM: " + GVM + " Move: " + Move() + " Operator: " + Operator();
static void Main(string[] args)
Vehicle[] vehicles = new Vehicle[5];
vehicles[0] = new MotorVehicle("Car", 6, 8, 32);
vehicles[1] = new WaterCraft("Submarine");
vehicles[2] = new AirCraft();
vehicles[3] = new MotorVehicle();
vehicles[4] = new MotorVehicle() + vehicles[2];
for (int i = 0; i < 5; i++)
Console.WriteLine(vehicles[i].ToString());