class test
{
static void Main(string[] args)
{
Console.WriteLine("父类对象指向父类引用:");
Person p2 = new Person();
p2.virFun();
Console.WriteLine("只是创建子类对象:");
Son1 s = new Son1();
s.virFun();
Console.WriteLine("父类对象指向子类引用:");
Person p = new Son1();
p.virFun();
//Console.WriteLine("子类对象指向父类引用:"); //--子类对象指向父类,这样是不允许的,编译时要报错
//Son1 p3 = new Person();
//p3.virFun();
Console.ReadLine();
}
}
public class Person
{
//父类的构造函数
public Person()
{
Console.WriteLine("Person");
}
//父类的虚方法
public virtual void virFun()
{
Console.WriteLine("Person's Fun");
}
}
//子类代码如下:
public class Son1:Person//继承
{
//子类Son1的构造方法
public Son1()
{
Console.WriteLine("Son1");
}
//重写父类的虚方法
public override void virFun()
{
Console.WriteLine("Son's Fun");
}
}