C#中的interface、virtual和abstract

一、Abstract:

abstract方法必须在abstarct类中声明,没有默认实现,子类必须实现。

二、Virtual:

virtual方法可以声明在abstract类中,也可以声明在非abstarct类中,并且可以有默认实现。

三、Interface(接口)

接口的一些描述

1. 接口是一个引用类型,通过接口可以实现多重继承。
2. C#中接口不能有new、public、protected、internal、private等修饰符。
3. 接口中只能声明"抽象"成员(所以不能直接下一步对接口进行实例化(即不能使用new操作符声明一个接口的实例对 象)),而不能声明共有的域或者私有的成员变量。
4. 接口声明不包括数据成员,只能包含方法、属性、事件、索引等成员。
5. 接口成员的访问级别是默认的(默认为public),所以在声明时不能再为接口成员指定除public外的任何访问修饰符,否则 编译器会报错。
6. 接口成员不能有static、abstract、override、virtual修饰符,使用new修饰符不会报错,但会给出警告说不需要关键字new。
7. 在声明接口成员的时候,不准为接口成员编写具体的可执行代码,也就是说,只要在对接口进行声明时指明接口的成员名称和参数就可以了。
8. 接口一旦被继承,子类需要把接口中所有成员实例化(通过具体的可执行代码实现接口抽象成员的操作)。

(百度百科:http://baike.baidu.com/link?url=UlmCxkt6O7lqmGK4IdM5CmzwhK3nnEQmA3dCkh9I6-noq3GfVv-chDLIo3QMQYPlEo3Vv8PK8J2e9OidgP8Sta)

接口的意义

1. 接口一个比较常用的用法是声明一组行为方法,这组行为方法可以有不同的实现和多个实现,而使用这组行为的类也只关心行为的声明。简单说就是定义了交互的契约。

2. 面向接口编程,容易对应用系统进行分层,不同层次之间使用接口进行交互。这有以下好处:层次职责清晰;容易做UT;容易解耦(DI,IoC)。

3. 可以实现多重继承。

 

转载于:https://www.cnblogs.com/codesee/p/3925831.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值