public class EmployeeTax : TaxPayerInfo
public static int Id {get;set;}
public static string Name {get;set;}
public static string Gender {get;set;}
public static int Age {get;set;}
public static Double Salary {get;set;}
public static void Main(string [] args)
Console.WriteLine("Enter your Emp ID: ");
Id = int.Parse (Console.ReadLine());
Console.WriteLine("Enter your Name: ");
Name = Console.ReadLine();
Console.WriteLine("Enter your date of birth in 'mm/dd/yyyy' format: ");
DateTime.TryParse(Console.ReadLine(), out dateTime);
Age = DateTime.Today.Year - dateTime.Year;
Console.WriteLine("Enter your Gender: ");
Gender = Console.ReadLine();
Console.WriteLine("Enter your Salary: ");
Salary = double.Parse(Console.ReadLine());
Console.WriteLine("Minor dont need to pay taxes.");
if (!string.IsNullOrEmpty(Name) && Age > 18 && Salary > 0)
var tax = new TaxPayerInfo();
Console.WriteLine("Tax you need to pay is: " + tax.CalculateTax(Gender, Age, Salary));
Console.WriteLine("\nDo you want to continue: (y/n) ");
if (Console.ReadLine() == "n")
public override double CalculateTax(string gender, int age, double salary)
return base.CalculateTax(gender, age, salary);
public class TaxPayerInfo
public virtual double CalculateTax(string gender, int age, double salary)
gender = gender.ToLower();
if (gender == "male" && age >= 18)
if (gender == "female" & age >= 18)
Console.WriteLine("Cannot calculate Tax: " + ex.Message);