接口是行为的规范
接口也是一种自定义类型
关键字 interface
接口声明的规范:
1. 不包含成员变量
2. 只包含方法、属性、索引器、事件
3. 成员不能被实现,包括访问器get和set。
C# 8.0 中开启默认接口实现
4. 成员可以不用写访问修饰符,默认是public ,但不能是私有的
5. 接口不能继承类,但可以继承另一个接口
接口的使用规范:
1. 类可以实现多个接口
2. 类要使用接口就必须实现接口中的所有成员,且必须是public的
接口命名规范:帕斯卡命名法,前面加个 I
实例:
namespace 默认接口实现
{
interface IFlyable
{
public void Func()
{
Console.WriteLine("test");
}
void Fly();
int Speed { get; set; }
}
class Bird:IFlyable
{
public void Fly()
{
Console.WriteLine("fly at speed " + Speed);
}
public int Speed { get; set; }
}
class Program
{
static void Main(string[] args)
{
Bird bird = new Bird();
bird.Speed = 10;
bird.Fly();
//fly at speed 10
IFlyable i = bird;
i.Func();
//test
}
}
}
补充:
1. 接口不能实例化,但可以作为容器存储对象。
2. 接口默认实现的成员,如果实现该接口的类没有显式实现该成员,那么这个类不能使用该默认实现的成员。
3. .net Framework 与 c# 版本的对应如下
4. C#版本 .NET版本 发布日期 特性