gsk's place

my love

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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

一、Virtual方法(虚方法)

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

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

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

  virtual方法必须有实现(即便它是在abstract类中定义的方法)

二、Abstract方法(抽象方法)

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

  abstract类无法创建实例,只能被继承无法实例化。

posted on 2015-11-18 20:48  gsk99  阅读(259)  评论(0编辑  收藏  举报