![]()
![]()
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace li2_5
{
public class Employee
{
private double bsalary=1500;
private double psalary;
private int n;
public int N
{
get { return n; }
set { n = value; }
}
public virtual double Esalary()
{
Console.Write("请输入该员工进公司的年数:");
N = int.Parse(Console.ReadLine());
psalary =bsalary*(Math.Pow((1+0.2),(N-1)));
return psalary;
}
}
public class BachelorEmp : Employee
{
public override double Esalary()//通过在与基类虚方法同名的方法前使用override关键字,实现对基类虚方法的重写。
{
Console.WriteLine("计算机本科生员工的工资");
return 1.5 * base.Esalary();
}
}
public class MasterEmp : Employee
{
public override double Esalary()
{
Console.WriteLine("计算机硕士生员工的工资");
return 2 * base.Esalary();
}
}
class Program
{
static void Main(string[] args)
{
Employee e1 = new Employee();
Console.WriteLine("该员工的实际工资为:{0}", e1.Esalary());
BachelorEmp b1 = new BachelorEmp();
e1 = b1;//使得e1和b1具有相同的派生类类型BachelorEmp
Console.WriteLine("该员工的实际工资为:{0}", e1.Esalary());
MasterEmp m1 = new MasterEmp();
e1 = m1;
Console.WriteLine("该员工的实际工资为:{0}", e1.Esalary());
}
}
}