接口的关键字:interface
接口的比喻:接口就像是电脑的PCIE卡槽,只提供对应的接口,具体的实现内容是没有,而外部若想电脑能读取,就必须能匹配这个接口。
为什么要用接口:某个方法或者类要被不同的类实现很多次的时候,此时接口的利用性就会很高。
接口的步骤:
1.声明接口:
interface IIfc1 //接口名必须由大写I开始
{
void PrintOut(string s);
//声明接口时,无实现代码,分号代替主体
}
2.实现接口:
class MyClass:IIfc1 //声明类
{
public void PrintOut(string s)//实现接口内的所有成员
{
Console.WriteLine("输入的字符串为{0}:",s);
//接口内方法成员给填充具体的实现代码
}
}
3.main方法调用
class Program
{
static void Main()
{
MyClass mc = new MyClass();//创建类的实例
mc.PrintOut("object");//调用第二步里面实现的接口方法PrintOut
}
}
最后你会得到的输出为:输入的字符串为:object
接口的注意事项:
1.必须在基类列表后面列出接口名称
2.必须为接口的每一个成员提供实现
3.接口声明不能包括:数据成员和静态成员
4.接口的成员是隐式的public,不允许有任何的修饰符,包括public
5.接口名称必须从大写I开始
6.关键字interface必须要有
7.接口成员不能有任何实现代码,每一个成员声明的主体后必须使用分号(;),只有类和结构才能实现接口
8.如果某个类,是从基类继承来的又需要实现接口,那么基类只能有一个,且必须写在接口名之前。
接口是引用类型以及as运算符:
1.接口是引用类型:
IIfc1 ifc=(IIfc1 ) mc; //将类对象的引用转换为接口类型的引用
ifc.PrintOut("object1");//调用引用方法
你会得到的输出为:输入的字符串为:object1
2.接口和as运算符:
IIfc1 ifc2=mc as IIfc1; //使用强制转换符as来获取对象接口的引用
ifc2.PrintOut("object2");//调用引用方法
你会得到的输出为:输入的字符串为:object2
衍生后续:
1.一个类可以实现多个接口,接口依次写在声明类处
2.若多个接口有相同的签名和返回类型的成员,那么类实现接口的时候实现单个成员就可满足所有包含重复成员的接口
3.接口可以继承接口
4.不同的类也可以实现一个接口