接口定义了语法合同中“是什么”的部分,在接口中,只定义接口成员的声明。
接口特点:
1.继承于接口的类,必须要实现所以的接口成员;
2.类只能继承一个父类,但是可以继承多个接口(如果应该类继承了多个接口,则多个接口的所以成员类都要实现)代码示例如下:
interface IFirstInterFace
{
...
}
interface ISecondInterFace
{
...
}
class Myclass : IFirstInterFace,ISecondInterFace
{
...
}
接口与抽象类的区别:
- 抽象方法:接口只能包含抽象方法(没有方法体的方法),而抽象类可以同时包含抽象方法和具体方法(有方法体的方法)。
- 实现:类可以实现多个接口,但只能继承一个抽象类。
- 属性和字段:接口不能包含属性或字段,而抽象类可以。
- 默认实现:抽象类可以提供抽象方法的默认实现,而接口不行。
- 实例化:接口不能直接实例化,而抽象类可以(但通常不这样做)。
下面是一个示例,展示了接口和抽象类的区别:
// 接口
interface IShape
{
void Draw();
}
// 抽象类
abstract class Shape
{
public abstract void Draw();
public void Move()
{
Console.WriteLine("Moving the shape...");
}
}
// 实现接口的类
class Rectangle : IShape
{
public void Draw()
{
Console.WriteLine("Drawing a rectangle...");
}
}
// 继承抽象类的类
class Circle : Shape
{
public override void Draw()
{
Console.WriteLine("Drawing a circle...");
}
}