public static void Main()
EmployeeTax employeeTax = new EmployeeTax();
employeeTax.Name = "Mohan Prasath";
employeeTax.Gender = "M";
employeeTax.DOB = Convert.ToDateTime("1992/03/28");
employeeTax.Salary = 18000;
EmployeeTax employeeTaxByGender = new TaxReturnCalculationByGender();
employeeTaxByGender.Id = employeeTax.Id;
employeeTaxByGender.Name = employeeTax.Name;
employeeTaxByGender.Gender = employeeTax.Gender;
employeeTaxByGender.DOB = employeeTax.DOB;
employeeTaxByGender.Salary = employeeTax.Salary;
Console.WriteLine("The Tax Return for " + employeeTaxByGender.Name + ", based on gender calculation :" + employeeTaxByGender.CalculateTax());
EmployeeTax employeeTaxByAge = new TaxReturnCalculationByAge();
employeeTaxByAge.Id = employeeTax.Id;
employeeTaxByAge.Name = employeeTax.Name;
employeeTaxByAge.Gender = employeeTax.Gender;
employeeTaxByAge.DOB = employeeTax.DOB;
employeeTaxByAge.Salary = employeeTax.Salary;
Console.WriteLine("The Tax Return for " + employeeTaxByGender.Name + ", based on Age calculation :" + employeeTaxByAge.CalculateTax());
public int Id { get; set; }
public string Name { get; set; }
public string Gender { get; set; }
public DateTime DOB { get; set; }
public int Salary { get; set; }
public virtual decimal CalculateTax()
taxReturn = Salary * 25 / 100;
public int AgeCalculate()
var today = DateTime.Today;
Age = today.Year - DOB.Year;
public class TaxReturnCalculationByGender : EmployeeTax
public override decimal CalculateTax()
taxReturn = Salary * 20 / 100;
taxReturn = Salary * 15 / 100;
public class TaxReturnCalculationByAge : EmployeeTax
public override decimal CalculateTax()
int age = AgeCalculate();
taxReturn = Salary * 18 / 100;
taxReturn = Salary * 10 / 100;