一、定义接口
在C#语言中,类之间的继承仅支持单继承,而接口是为了实现多重继承关系设计的。
一个类能同时实现多个接口,还能在实现接口的同时再继承其他类,并且接口之间也可以继承。
接口定义了所有类继承接口时应遵循的语法合同。接口定义了语法合同”是什么”部分,派生类定义了语法合同”怎么做”部分。
接口定义了属性、方法和事件,这些都是接口的成员。接口只包含了成员的声明。成员的定义是派生类的责任。接口提供了派生类应遵循的标准结构。
多重继承,是指一个类可以同时继承多个类。(C#和Java中不支持)
二、接口的语法
接口定义的语法形式:
Interface 接口名称
{
接口成员;
}
-接口的名称
通常以I开头,再加上其他的单词构成。例如创建一个计算的接口,可以命名为ICompute.
-接口成员
接口中定义的成员与类中定义的成员类似
接口中定义的成员必须满足以下要求:
接口中的成员不允许使用public、private、protected、internal访问修饰符。
接口中的成员不允许使用static、virtual、abstract、sealed修饰符
在接口中不能定义字段
在接口中定义的方法不能包含方法体。
例如:
interface IMatch
{
Void Tals();
}
三、接口的实现
-接口的实现是通过继承的方式进行实现的。
接口实现需要注意的地方;
>接口继承接口之后具有父接口的全部成员。
>类继承接口后需要实现接口的全部成员方法。否则需要将该类定义为抽象类,未实现的接口方法定义为抽象方法。
>继承时基类和接口之间,接口和接口之间以逗号分隔
例如:
class A
{
public person()
{
name=this.name;
age=this.age;
sex=this.sex
}
public string name;
public int age;
public string sex;
}
class B:A,IMatch
{
public void Tals()
{
Console.WriteLine(“Hello world”);
}
}
-实现接口方式
>接口大的实现分两种:显式实现接口和隐式实现接口
>显式实现接口需要使用接口名作为方法名的前缀
*显式实现接口时不需要指定访问修饰符
*显式实现的接口在调用时必须使用接口对象
-隐式实现接口
隐式实现接口不需要接口名作为方法名的前缀,但需要添加访问修饰符public
-总结
当类实现一个接口时,通常使用隐式接口实现,这样可以方便的访问接口方法和类自身具有的方法和属性
当类实现多个接口时,并且接口中包含相同的方法签名,此时使用显式接口实现
隐式接口实现,类和接口都可访问接口中方法。显式接口实现,只能通过接口访问。