1. 接口的基本概念
在C#中,接口是一种定义类的契约(contract),它规定了类必须实现的方法、属性和事件等成员。通过实现接口,类可以达到多态的效果,也就是说,多个类可以实现同一个接口,但是每个类可以根据自身的特征来实现接口中的成员。接口可以用来定义一组相关的功能,使得代码更加灵活和可扩展。
1.1 接口的定义
在C#中,接口使用interface
关键字来定义,语法如下:
public interface IExampleInterface
{
// 方法声明
void ExampleMethod();
// 属性声明
int ExampleProperty { get; set; }
// 事件声明
event EventHandler ExampleEvent;
}
上面的代码定义了一个名为IExampleInterface
的接口,接口中包含了一个方法ExampleMethod
、一个属性ExampleProperty
和一个事件ExampleEvent
。接口里面的成员只有声明,没有实现,具体的实现需要在实现了接口的类中完成。
1.2 接口的实现
要实现一个接口,类必须使用class
关键字定义,并使用:
符号后跟接口的名称。
public class ExampleClass : IExampleInterface
{
public void ExampleMethod()
{
// 方法实现
}
public int ExampleProperty { get; set; }
public event EventHandler ExampleEvent;
}
上面的代码演示了一个类ExampleClass
实现了接口IExampleInterface
。类中实现了接口中的ExampleMethod
方法、ExampleProperty
属性和ExampleEvent
事件。
2. 接口的继承
接口可以继承其他接口,通过接口的继承,我们可以定义更加复杂的接口结构。
2.1 接口继承的语法
接口继承使用:
符号,并且可以同时继承多个接口,语法如下:
public interface IChildInterface : IExampleInterface1, IExampleInterface2
{
// 新增的方法和属性等成员
}
上面的代码定义了一个名为IChildInterface
的接口,它同时继承了IExampleInterface1
和IExampleInterface2
两个接口。
2.2 接口继承的示例
下面的示例展示了如何使用接口的继承:
public interface IShape
{
void Draw();
}
public interface IColorfulShape : IShape
{
void SetColor(string color);
}
public class Circle : IColorfulShape
{
public void Draw()
{
Console.WriteLine("Drawing circle");
}
public void SetColor(string color)
{
Console.WriteLine("Setting circle color to: " + color);
}
}
上面的代码定义了三个接口:IShape、IColorfulShape和一个具体的类Circle,接口IShape声明了一个方法Draw,接口IColorfulShape继承了IShape,并新增了一个方法SetColor,类Circle同时实现了两个接口,并提供了对应的方法实现。
3. 接口的base调用
在C#中,接口可以使用b