SOLIDLiskovSubstitutionPrinciple

CSharp · Console

/Program.cs

using System;

namespace Problem 
{
	internal interface IVehicle
	{
		void StartEngine();
	}
	internal class Car : IVehicle
	{
		public void StartEngine()
		{
			Console.WriteLine("Starting car");
		}
	}
	internal class Bicycle : IVehicle
	{
		public void StartEngine()
		{
			throw new NotImplementedException();
		}
	}
	internal class Mechanic
	{
		public void CheckVehicle(IVehicle vehicle)
		{
			vehicle.StartEngine();
		}
	}
}

namespace Solution
{
	internal interface IVehicle
	{
		void Start();
	}
	internal class Car : IVehicle
	{
		public void Start()
		{
			Console.WriteLine("Starting car");
		}
	}
	internal class Bicycle : IVehicle
	{
		public void Start()
		{
			Console.WriteLine("Pedalling Cycle");
		}
	}
	internal class Mechanic
	{
		public void CheckVehicle(IVehicle vehicle)
		{
			vehicle.Start();
		}
	}
}
					
public class Program
{
	public static void Main()
	{
		var bicycle = new Solution.Bicycle();
		var mechanic = new Solution.Mechanic();
		mechanic.CheckVehicle(bicycle);
		
		var car = new Solution.Car();
		mechanic.CheckVehicle(car);
	}
}
;