protected double number1;
protected double number2;
public virtual double Calculate()
public class Addition : Calculator
public override double Calculate()
return Number1 + Number2;
public class Subtraction : Calculator
public override double Calculate()
return Number1 - Number2;
public class Multiplication : Calculator
public override double Calculate()
return Number1 * Number2;
public class Division : Calculator
public override double Calculate()
return Number1 / Number2;
Console.WriteLine("Error!");
public static void Main(string[] args)
Console.WriteLine("Calculator");
Console.WriteLine("Enter two numbers:");
double number1 = Convert.ToDouble(Console.ReadLine());
double number2 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Select operation:");
Console.WriteLine("1. Addition");
Console.WriteLine("2. Subtraction");
Console.WriteLine("3. Multiplication");
Console.WriteLine("4. Division");
int choice = Convert.ToInt32(Console.ReadLine());
calc = new Subtraction();
calc = new Multiplication();
Console.WriteLine("Invalid choice. Exiting program.");
double result = calc.Calculate();
Console.WriteLine("Result: " + result);