Vala Reference Manual

## Interfaces

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.

### Interface declarations

    		public interface InterfaceName : RequiredInterface <optional>
    		{
    			<interface members>
    		}

### Methods

Interfaces can contain abstract and non abstract methods.

    		public abstract void MethodName ();
    		public void MethodName2 ()
    		{
    			<Implementation>
    		}

### Delegates

Interfaces can also contain delegates

    		public delegate void DelegateName (void* data);

### Signals

Signals are also supported by interfaces

    		public signal void SignalName ();