虚方法:当使用基类引用访问派生对象时,得到的是基类的成员。虚方法可以使基类的引用访问“升至”派生类内
class Program
{
static void Main(string[] args)
{
Son s = new Son();
Person p = (Person)s;
s.print();
p.print();
Console.ReadLine();
}
}
class Person
{
virtual public void print()
{
Console.WriteLine("我是虚方法基类");
}
}
class Son : Person
{
override public void print()
{
Console.WriteLine("我是派生类");
}
}
使用条件:
1、派生类的方法和基类的方法有相同的签名与返回类型
2、基类的方法使用Virtual标注
3、派生类的方法使用override标注
理解:个人觉得,虚方法与覆写方法就是在派生类中覆写方法修改基类的虚方法
覆写方法:
覆写方法可以在继承的任何层次出现
virtual/override在属性、事件、以及索引器上的用法也是一致的