using System;
class Employee//员工类
{
protected string _name;//员工姓名
public Employee() { }//构造函数
public Employee(string name)//构造函数为员工姓名赋值
{
_name = name;
}
public virtual void StatWork()//开始工作的虚方法
{
Console.Write(_name + "开始工作:");
}
}
class Manager:Employee//经理类
{
public Manager(string name):base(name){}//把参数传递到基类构造函数
public override void StatWork()//重写经理工作的方法
{
base.StatWork();//一般情况下使用虚函数他的子类都应该调用基类被覆盖的方法
Console.WriteLine("给员工下达任务");
}
}
class Secretary:Employee//秘书类
{
public Secretary(string name) : base(name) { }
public override void StatWork()
{
base.StatWork();
Console.WriteLine("协助经理");
}
}
class Seller : Employee
{
public Seller(string name) : base(name) { }
public override void StatWork()
{
base.StatWork();
Console.WriteLine("销售产品");
}
}
class Test
{
static void Main()
{
Employee[] emp = new Employee[4];//定一个类数组相当于4人的公司
emp[0] = new Manager("张三");//实例经理张三
emp[1] = new Secretary("李四");//实例秘书李四
emp[2] = new Seller ("王五");//实例销售王五
emp[3] = new Seller("马六");
Console.WriteLine("早上8点,开始工作");
foreach (Employee e in emp)
{
e.StatWork();
}
Console.ReadKey();
}
} |