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

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

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、派生类必须实现未实现的方法

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值