虚方法与两种重写方法的比较

Posted 无乐不作丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了虚方法与两种重写方法的比较相关的知识,希望对你有一定的参考价值。

虚方法virtual..override:

1.派生类的方法和基类的方法有相同的签名和返回类型。

2.基类的方法使用virtual标注。

3.派生类的方法使用override标注。

class MyBaseClass
{
  virtual pubilc void Print()
   ...
}

class MyDerivedClass : MyBaseClass
{
    override pubilc void Print()
  ...
}

 

注意:

1.重写和被重写的方法必须有相同的可访问性。换一种说法,被重写的方法不能是private等,而重写方法是pubilc。

2.不能重写静态方法和非虚方法。


 

 

两种重写方法,一种是用override, 一种是new。

override方法中调用方法可以直接通过关键字找到相应的函数方法,new 方法调用的方法只向上传递一级。

 

详细参考 《C#图解教程》P128-129。

 

以上是关于虚方法与两种重写方法的比较的主要内容,如果未能解决你的问题,请参考以下文章

C# virtual 和 abstract 区别

继承(父类为虚方法以及子类的重写)

多态虚方法重写

C#中Abstract和Virtual的区别

面向对象:多态;

如果父类有一个虚方法,子类重写了这个方法。那么子类到底有没有继承父类的虚方法??