using System; //这个不用说了吧class E
{
public string name; //定义一个属性 public E(string name) //带参数的构造函数
{
this.name = name;  
} public void Cay() 
{
Console.WriteLine("E.Cay called for {0}",name); //在控制台上输出,{0},后面的name会替代他
}
}class CEmployee : E   //继承了E
{
public CEmployee(string name) : base(name)
{
} public new void Cay()
{
Console.WriteLine("CEmployee.Cay called for {0}",name);
}
}class SEmployee : E  //继承了E
{
public SEmployee (string name) : base(name)
{
} public new void Cay()
{
Console.WriteLine("SEmployee.Cay called for {0}",name);
}
}class TestNotPolymorphic 
{
protected E[] employees;  //定义了一个E类的对象的数组 public void LoadEmployees()  
{
employees = new E[2]; 
employees[0] = new CEmployee("Adam Barr");  //实例化
employees[1] = new SEmployee("Max Benson");  //实例化
} public void DoPayroll()
{
for (int i = 0; i < employees.GetLength(0); i++)  //输出
{
employees[i].Cay();         
}
} static void Main(string[] args)   //主函数,程序的入口点
{
TestNotPolymorphic t = new TestNotPolymorphic();   //声明一个对象
t.LoadEmployees();  //调用函数
t.DoPayroll();     //输出
}
}