关于C#接口认识

      C#接口可以说是用来描述类或结构的一组功能或行为,所以说实现接口的类或结构就必须要实现接口中定义的所有成员。接口使用关键字interface定义,可以由方法、属性、事件和索引器或这四种成员的任何组合类型构成,但是不能包含字段!!!
   

C#接口特性: 1.接口类似于抽象类,不能直接抽象为实例对象;       
2.接口及其成员的访问类型默认为public,自动是公开的,所以不能包含任何访问修饰符;(c# 默认访问修饰符:internal)       
3.接口中的方法都是抽象方法,实现接口必须要实现接口的所有成员,除非有另一个接口继承它,此时不需要实现接口成员;       
4.接口成员的实现包括显式实现和隐式实现:显式实现的成员不能通过类的实例访问,只能通过接口实例访问(这里说的接口实例并非真的new一个接口,接口是不能

直接new的,这里只是声明一个接口实例,由实现接口的类进行new从而给接口实例初始化。)隐式实现的成员既可以通过类实例访问,也可以通过接口实例访问。
        Tip:一般情况下,当类或结构实现的是单个接口,使用隐式实现;当类或结构继承了多个接口,且接口中有相同名称成员时,使用显示实现。
        5.接口可以多继承,但类只能单继承。其次,接口继承只是说明继承,类继承不仅是继承,同时也要实现接口。(还有,无论继承还是实现,都是用“:”)
        6.想补充的一点:c#里有修饰符abstract,virtual,override,new. Abstract修饰的是抽象方法,没有方法体,不能直接被调用,需要override重写;virtual修饰
的虽然表明是一个虚方法,但仍有方法体,所以可以被直接调用的,同时virtual也支持new和override,new修饰方法表明我隐藏了基类成员 但是也可以访问到,而override表示覆盖,
会替换基类中的实现代码,基类方法访问不到。

注明:本文章主要是作者为了整理知识点,方便个人查看。当然,也有部分是从网上借鉴过来,如有雷同,敬请谅解。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值