接口是一种引用类型,在接口中可以声明( ),但不可以声明公有的域或私有的成员变量。
接口可以是命名空间或类的成员。 接口声明可以包含以下成员的声明(没有任何实现的签名):
接口中的成员主体是默认实现。 具有主体的成员允许接口为不提供重写实现的类和结构提供“默认”实现。 接口可能包括:
使用显式接口实现语法的成员声明。
显式访问修饰符(默认访问权限为 public)。
接口不能包含实例字段、实例构造函数或终结器。 接口成员默认是公共的,可以显式指定可访问性修饰符(如 public、protected、internal、private、protected internal 或 private protected)。 private 成员必须有默认实现。
实现接口的类或结构必须实现其所有成员。
从 C# 8.0 开始,接口可以定义其部分或全部成员的默认实现。 实现接口的类或结构不一定要实现具有默认实现的成员。
接口无法直接进行实例化。 其成员由实现接口的任何类或结构来实现。
一个类或结构可以实现多个接口。 一个类可以继承一个基类,还可实现一个或多个接口。