怎么样理解C#中的virtual(虚方法)

来源:百度知道 编辑:UC知道 时间:2024/06/23 02:02:43
怎么样理解C#中的virtual(虚方法)
对于这个东西我有点不大理解
哪位高手举个简单的例子帮忙说明一下哈
谢谢啦

virtual 虚方法 的作用就是 让子类 可以 重新 定义 父类 方法的实现(overload)
例如:
class A
{
public virtual string Print()
{
return "我是A类";
}
}
class B : A
{

}
class C : A
{
public overload string Print()
{
return "我是C类";
}
}

以上类B,类C都继承了类A;
当调用类B的Print方法时,返回值是:"我是A类";
当调用类C的Print方法时,返回值是:"我是C类";

首先说说声明方式,使用override。
一般情况下,都会和重载来比较。
就是说重载和虚方法的区别。重写override一般用于接口实现和继承类的方法改写,要注意

1、覆盖的方法的标志必须要和被覆盖的方法的标志完全匹配,才能达到覆盖的效果;
2、覆盖的方法的返回值必须和被覆盖的方法的返回一致;
3、覆盖的方法所抛出的异常必须和被覆盖方法的所抛出的异常一致,或者是其子类;
4、被覆盖的方法不能为private,否则在其子类中只是新定义了一个方法,并没有对其进行覆盖。

virtual 方法表明了类的多态性,你声明一个虚方法是要这样:override virus 方法名