接口的c#中的接口
C# 语言参考
接口(C# 参考)
定义:接口是一种约束形式,其中只包括成员定义,不包含成员实现的内容。
目的:接口的主要目的是为不相关的类提供通用的处理服务,由于C#中只允许树形结构中的单继承,即一个类只能继承一个父类,所以接口是让一个类具有两个以上基类的唯一方式。
声明:接口声明的方式与声明类的方式相似,但使用的关键字是interface,而不是 class。
接口只包含方法、属性、索引器和事件的签名。方法的实现是在实现接口的类中完成的,如下面的示例所示: interface ISampleInterface{//interfacemembersvoid SampleMethod();}class Implementation Class:ISampleInterface{//实现接口成员。void ISampleInterface.SampleMethod(){//方法实现。Main();}static void Main(){//定义一个接口的实例变量obj。ISampleInterface obj=new ImplementationClass();//调用(obj)的成员方法。Console.Write(ok);Console.Read();}}接口成员的定义:与类成员的定义相似,但是要注意:
不允许使用访问修饰符(public,private,protected 或 internal),所有的接口成员都必须是公共的;
接口成员不能包含代码实体;
接口成员不能定义字段成员;
接口成员不能用关键字static,virtual,abstrac t或 sealed 来定义;
类型定义成员是禁止的。
如果要隐藏继承了基接口的成员,可以用关键字new来定义它们,例如: interface IMyBaseInterface{void DoSomething();}interface IMyDerivedInterface:IMyBaseInterface{new void DoSomething();}备注 :
接口可以是命名空间或类的成员,并且可以包含下列成员的签名:
方法属性索引器事件一个接口可从一个或多个基接口继承。
当基类型列表包含基类和接口时,基类必须是列表中的第一项。
实现接口的类可以显式实现该接口的成员。显式实现的成员不能通过类实例访问,而只能通过接口实例访问,例如:
有关显式接口实现的更多详细信息和代码示例,请参见显式接口实现(C# 编程指南)。
示例
下面的示例演示了接口实现。在此例中,接口IPoint 包含属性声明,后者负责设置和获取字段的值。Point 类包含属性实现。 //keyword_interface_2.cs//Interfaceimplementationusing System;interfaceIPoint{//Propertysignatures:intx{get; set;}inty{get; set;}}class Point:IPoint{//Fields:private int _x;private int _y;//Constructor:public Point(int x,int y){_x=x;_y=y;}//Propertyimplementation:public int x{get{return _x;}set{_x=value;}}public int y{get{return _y;}set{_y=value;}}}class MainClass{static void PrintPoint(IPointp){Console.WriteLine(x={0},y={1},p.x,p.y);}static void Main(){Pointp=newPoint(2,3);Console.Write(MyPoint:);PrintPoint(p);}输出MyPoint:x=2,y=3
2024-05-14 广告