在我们使用C#开发项目时,难免会使用到接口,那么对于接口你了解多少呢?下面我们就来了解了解接口。
在微软的文档中给出了这么的定义:接口包含非抽象Class或struct必须实现的一组相关功能的定义。
简单来说,接口就是对非抽象类和结构的行为进行抽象。
既然是对行为进行抽象,那么接口中的行为肯定是不包含具体实现的。但是,在.NET Core 3.0上的C# 8.0开始,我们可以在声明接口成员时,定义实现。而在C# 8.0之前,给成员添加实现是绝对不行的,编译都不会通过。
还有,在C# 8.0 之前,接口中的成员是不能有修饰符的,所有的都隐式的具有Public访问属性。因为接口也算是抽象的一种,本身就是要求别人完成某些目的的契约,如果不是Public,那么实现该接口的类也无法看到该契约,那这接口也失去了意义。
关于修饰符请看下方个人做的对比表格:
C# 接口 | C# 8.0之前 | C# 8.0及之后版本 |
方法声明能否包含 public 修饰符 | 不能使用任何修饰符 | 可以使用Pub |