C#之接口

来源:互联网 发布:人体工学椅有用吗 知乎 编辑:程序博客网 时间:2024/06/11 15:31

在编程中,常常用到接口,但是什么是接口呢?


1、接口的定义:

接口是把隐式公共方法和属性组合起来,以封装特定功能的一个集合。实现接口,类就可以支持接口指定的所有属性和成员。

接口描述的是可属于任何类或结构的一组相关功能,所以实现接口的类或结构必须实现接口定义中指定的接口成员。


2、接口的命名:

接口声明语法上和声明抽象类完全相同,接口使用interface 关键字进行声明,可由方法、属性、事件、索引器或这四种成员类型的任意组合构成,但不允许提供接口中任何成员的执行方式。接口名称前面加大写子母的“I”,方法或属性前面不能有修饰符(public,private等),方法没有方法体。

C#中声明接口:

修饰符 interfaceI接口名称:继承的接口列表

{

    接口内容;

}


3、接口的特性:

1.接口类似于抽象基类,不能直接实例化接口;接口中的方法都是抽象方法,实现接口的任何非抽象类型都必须实现接口的所有成员:
显式实现该接口的成员时,实现的成员不能通过类实例访问,只能通过接口实例访问。
隐式实现该接口的成员时,实现的成员可以通过类实例访问,也可以通过接口实例访问但是实现的成员必须是公有的
2.接口不能包含常量、字段、运算符、实例构造函数、析构函数或类型、不能包含静态成员
3.接口成员是自动公开的,且不能包含任何访问修饰符。

4.接口自身可从多个接口继承,类和结构可继承多个接口,但接口不能继承类。


4、为什么不能指定接口中方法的修饰符? 

接口中的方法用来定义对象之间通信的契约,指定接口中的方法为私有或保护没有意义。它们默认为公有方法。


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


小结:学到这里,才对接口有了一个比较清晰的概念。要想灵活运用接口,还是要多实践,多学习才行啊!