The following restrictions apply to interfaces:

  • An interface can be declared with any accessibility, but interface members must all have public accessibility.
  • Interfaces cannot define constructors.
  • Interfaces cannot define fields.
  • Interfaces can define only instance members. They cannot define static members.

Each language must provide rules for mapping an implementation to the interface that requires the member, because more than one interface can declare a member with the same signature, and these members can have separate implementations.