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 ();