概念:
接口:使用java,asp.net等编写的API接口。让其他人通过相应的请求协议(如:http/https)来访问。理解成“在接口服务器上定义多个方法,在客户端上调用这些方法,这样的一个过程,称为请求接口。
C#中的接口:
定义一套规则,其他类实现规则。
接口必须实现,才能使用。
接口也是多态性的表现。
C#类只能继承一个父类(单继承),但一个类可以实现多个接口。
如果一个类,同时实现两个接口,和一个父类,顺序是什么?提示:先继承类,再实现接口
接口和抽象类的区别:
C#中,接口(Interface)和抽象类(Abstract Class)都用于定义抽象的行为,但它们有不同的应用场景和限制。
接口:
只能定义公共的抽象方法、属性、事件和索引器。
不包含任何实现。
可以被类直接实现。
支持多重继承(通过可继承接口的概念)。
主要用于定义合同,规定类必须实现的行为。
抽象类:
可以包含抽象和非抽象方法。
抽象方法不包含实现,需要在子类中实现。
抽象类不能直接实例化,只能作为基类被继承。
不支持多重继承,但可以通过继承多个接口来实现类似效果。
提供了一种实现抽象的方式,也可以提供具体实现的细节。
-----------------------------------------------------------------
接口使用interface关键字来定义
接口一般公开,使用public或internal
接口中包含类的常用成员(如:属性,方法,事件),但并不是类中的所有成员都可以在接口中存在
接口中的成员默认就是公开的(public),public关键字必须省略
建议:接口命名一般建议使用大写I。
使用接口前必须实现接口
public interface IBank
{
//接口中不能有构造函数
//public Interfacel() {}
//接口中不能有字段
//private string fieldl;
//规律:通过类的实例访问的成员,统统在接口不能存在。原因:接口不能实现化,只能被其他类实现。
规律:接口中一般不能出现静态成员
//static string Property {get;set}
//属性成员,默认公开
string BankName {get;set}
//方法成员,默认公开,不能实现,这点和抽象方法类似
//方法成员是接口出现最多的一种成员
void Pay();
}