Interfaces can be implemented by classes to provide functionality with a common interface. Each class can implement multiple interface and interfaces can require other interfaces to be implemented.
public interface InterfaceName : RequiredInterface <optional> { <interface members> }
Interfaces can contain abstract and non abstract methods.
public abstract void MethodName (); public void MethodName2 () { <Implementation> }
Interfaces can also contain delegates
public delegate void DelegateName (void* data);
Signals are also supported by interfaces
public signal void SignalName ();