码迷,mamicode.com
首页 > Windows程序 > 详细

C#基础知识:virtual方法,abstract方法,区别

时间:2016-12-21 09:55:12      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:rri   c#   类方法   基础知识   抽象方法   机制   修饰符   ati   注意   

virtual 关键字用于修饰方法、属性、索引器或事件声明,并使它们可以在派生类中被重写。默认情况下,类中的方法是非虚的,非虚的方法不能在子类中被覆盖(override),但是可以隐藏(new),但这不影响父类方法的功能。为了达到子类以自己的方法实现某一功能的目的,需要在父类中用virtual关键字来修饰方法,这样,在其继承子类中就可以采用覆盖的方法来提供方法的多态机制。virtual关键字在类中修饰方法需要注意以下几点:

1. virtual修饰类中方法时,前面必须有public修饰符,非虚方法不能是有;

2. virtual不可以与static、abstract、private、override一起使用;但virtual和override密不可分,要在子类中覆盖基类的虚方法,就必须要用到override覆盖,以子类方法实现某一功能;

3. virtual修饰的方法必须有实现,即使该实现是一个空方法体;

4. 基类中的virtual方法可以选择在继承子类中覆盖或不覆盖,这样就存在两种情况:

      (1)若基类中定义的virtual方法在派生类中被覆盖(override),那么在对派生类实例的调用中,该方法使用的是派生类中的新方法(该新方法是在子类中通过覆盖父类中的虚方法而重新定义的方法);

     (2)若在基类中定义的virtual方法在派生类中没有被覆盖(override),那么在对派生类实例的调用中,该方法使用的是基类中定义的方法。

 

 

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

C#基础知识:virtual方法,abstract方法,区别

标签:rri   c#   类方法   基础知识   抽象方法   机制   修饰符   ati   注意   

原文地址:http://www.cnblogs.com/linhuanzhi/p/6206311.html

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