using System;
class Employee
{
protected string _name;  
public Employee() {}   //这个方法的作用是什么,删掉后结果也相同 public Employee(string name)
{
_name=name;
}
public virtual void StartWork()
{
Console.WriteLine(_name+"开始工作");
}
}
class Manager :Employee
{
public Manager(string name):base(name){} 
public override void StartWork()
{
base.StartWork();  
Console.WriteLine("给员工下达工作任务");
}
}
class Secretary :Employee
{
public Secretary(string name):base(name){}
public override void StartWork()
{
base.StartWork();
Console.WriteLine("传达经理指示");
}
}
class Seller  :Employee
{
public Seller(string name):base(name){}
public override void StartWork()
{
base.StartWork();
Console.WriteLine("销售产品");
}
}
class Accountant :Employee
{
public Accountant(string name):base(name){}
public override void StartWork()
{
base.StartWork();
Console.WriteLine("管理公司财务");
}
}
class Test
{
static void Main()
{
Employee[] emp=new Employee[5];
emp[0]=new Manager("张三");
emp[1]=new Secretary("李四");
emp[2]=new Seller("王五");
emp[3]=new Seller("赵六");
emp[4]=new Accountant("钱七");
Console.WriteLine("早上8点,开始工作");
foreach( Employee e in emp)
{
e.StartWork();
}
}
}

解决方案 »

  1.   

    呵呵,public Employee() {}  是这个类 Employee 的构造函数,没有参数的构造函数,后面紧跟着
    public Employee(string name) 

    _name=name; 

    这个是有参数的构造函数。
    都是基础知识,看一下相关资料就行了。
      

  2.   

    public Employee() {}  //这个方法的作用是什么,删掉后结果也相同 public Employee(string name) 这不是构造函数嘛,C#会黙认有个无参构造函数的啊,所以删了也没关系
      

  3.   

    构造方法..也就是你创建实例的方法   
    例如
    new Employee();  执行的public Employee()
    new Employee("123"); 执行的public Employee(string name)