码迷,mamicode.com
首页 > 其他好文 > 详细

virtual方法和abstract方法

时间:2014-05-26 23:53:06      阅读:354      评论:0      收藏:0      [点我收藏+]

标签:c   class   a   使用   art      

 

     在C#的学习中,容易混淆virtual方法和abstract方法的使用,现在来讨论一下二者的区别。二者都牵涉到在派生类中与override的配合使用。

一、Virtual方法(虚方法)

     virtual 关键字用于在基类中修饰方法。virtual的使用会有两种情况:

     情况1:在基类中定义了virtual方法,但在派生类中没有重写该虚方法。那么在对派生类实例的调用中,该虚方法使用的是基类定义的方法。

     情况2:在基类中定义了virtual方法,然后在派生类中使用override重写该方法。那么在对派生类实例的调用中,该虚方法使用的是派生重写的方法。

  情况3:多态情况,在基类中定义virtual,然后在派生类中使用override重写该方法。那么在多态(基类 变量=new 派生类())的时候,调用的还是派生类重写的方法。

二、Abstract方法(抽象方法)

     abstract关键字只能用在抽象类中修饰方法,并且没有具体的实现。抽象方法的实现必须在派生类中使用override关键字来实现。

 

三、基类和派生类中都定义了一个相同的方法,这时候,实例化时,派生类前加new 关键字,可以隐藏基类方法,多态调用基类方法,直接实例化派生类,不会执行基类方法

virtual方法和abstract方法,布布扣,bubuko.com

virtual方法和abstract方法

标签:c   class   a   使用   art      

原文地址:http://www.cnblogs.com/yexinw/p/3745053.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!