c#里的接口

1、接口作为类型而存在

 

接口是类型(class)一般行为的定义和契约。作用主要有:定义多个类型都需要的公共方法和属性;作为一种不可实例化的类型存在。实现了接口的类或结构必须实现接口定义的每一个属性和方法,这些方法在设计或功能上往往是相关的。

 

2、接口和抽象类:

相同之处:两者都不能产生实例对象,都可以作为一种契约和定义被使用;

不同:

  • 接口没有实现部分,但抽象类可以包含部分实现代码;
  • 接口没有字段,但抽象类可以包含字段;
  • 接口可以被结构(struct)继承,但抽象类不行;
  • 抽象类有构造函数和析构函数;
  • 接口仅能继承自接口,而抽象类可以继承自其他类和接口;
  • 接口支持多继承而抽象类仅支持单重继承。

接口不允许包含操作符重载,其原因并非它不能实现,而是由于接口是一个公共契约,会公布给其他类型语言使用,如果在接口中实现运算符重载会引起不同语言之间的兼容问题。

接口定义的成员也不允许有修饰符,这是因为接口本身就是public的,它要求其它成员必须是公有的,否则这样的接口就没有任何意义。

 

3、c#中的接口和com接口

两者的不同:前者不需要支持任何com基础结构。

共同特征:提供契约而非实现

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值