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(); //输出
}
}
{
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(); //输出
}
}
解决方案 »
- 请问linQ能取代正则表达式吗?
- 网络编程---需要任何一个用户选中listbox中一个用户后与其在一个窗口中聊天,聊天记录需要保留在服务器端
- C#中的抽象方法和虚方法有什么区别?
- 求助关于SHMultiFileProperties的问题
- WinForm程序如何连接Windows服务
- 水晶报表报""是什么意思? 着急啊 在线等~~~~~~~~~~
- C#的WinForm里面有没类似JavaScript的window.prompt的功能的控件?是什么?多谢
- 如何在C#中实现同网上邻居一样的功能?
- 100分求解Ftp上传遇到的3个头痛的问题(我快被这个问题折磨成穷光蛋了......)
- C# socket 操作Ftp服务器【上传与下载】
- 帮我看看这个HttpWebRequest的问题,高分相送
- 高手请进来看一下,谢谢了!
employees[0] = new CEmployee("Adam Barr");
employees[1] = new SEmployee("Max Benson");
两句就是用基类的句柄来指向两个不同的派生类
通过基类句柄调用派生类的方法
employees[i].Cay();
看看继承相关的东西吧,很简单的
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/vsdebug/html/vchowexecutioncontrol.htm