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

C#虚方法(Virtual)、抽象方法(Abstract),接口(Interface)、抽象类的区别

时间:2016-04-02 16:15:30      阅读:370      评论:0      收藏:0      [点我收藏+]

标签:

一、虚方法和抽象方法的区别:

  1、抽象方法只能在抽象类里面声明,而且抽象方法不能有实现(不能有方法体)。

  2、虚方法在声明时必须有实现。

    public abstract class test     {        

      /// 在抽象类中声明了抽象方法        

      public abstract string AbstractMethod();

            /// 虚方法        

      public virtual string VirtualMethod()        

       {            

          return "this is a Virtual Method in Abstract Class!";        

      }

       }

  3、派生的子类中,必须要重写基类的抽象方法,虚方法则不一定要重写。

二、虚方法和抽象方法的相同点:

  1、都可以被派生类重写(overwrite)。

三、两者各自使用场景:

  完全不知道要怎么做的场景,使用抽象方法,知道了一部分怎么做的场景则使用虚方法。

 

四、抽象类和接口的区别:

  1、抽象类可以定义字段、属性、方法的实现,接口只能声明属性、索引器、事件和方法声明,不能有字段。

  2、接口可以被多重实现,抽象类只能被单一继承。

  3、抽象类是一个不完整的类,需要进一步细化,而接口是一个行为规范。

  4、接口可以用于支持回调,而继承并不具备这个特点。

 

五、抽象类和接口的相同点:

  1、都可以被继承

  2、都不能实例化

  3、都可以包含方法声明

  4、派生类必须实现未实现的方法

C#虚方法(Virtual)、抽象方法(Abstract),接口(Interface)、抽象类的区别

标签:

原文地址:http://www.cnblogs.com/Leo-lu/p/5347624.html

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