输出结果:

看上面的代码,我产生了一个疑问?为什么因为G()为虚方法,a2引用派生类B对象,调用的是B类的G()?
这里有一个解释:如果将基类引用变量引用不同对象,或者是基类对象,或者是派生类对象,用这个基类引用变量分别调用同名虚方法,根据对象的不同,会完成不同的操作。而非虚方法不具备次此功能。
关于类的多态性典型的例子:
- //类的多态性 namespace e_11
- { public class Person
- { private String name = "张三"; //类的成员说明
- private int age = 12; protected virtual void Display() //类的虚方法
- { Console.WriteLine("姓名:{0},年龄:{1}", name, age); } public Person(string Name, int Age) //构造函数,函数名和类名同名,无返回值
- { name = Name; age = Age; } static public void DisplayData(Person aPerson) //静态方法










