[<< wikibooks] Ada Programming/Keywords/interface
This language feature is only available from Ada 2005 on.

Used to declare an interface. Interfaces are the most important innovation in Ada 2005. The basic semantic has been taken from the interface concept of the Java programming language. Interface inheritance is a reduced form of multiple inheritance.


== Interface types ==
There are various forms of interfaces available:


=== Normal interface ===
The normal interface is declared as:

 type Printable is interface;


=== Limited interface ===
Can be used as interface to limited tagged type.

 type Printable is limited interface;


=== Synchronized interface ===
type Printable is synchronized interface;

All synchronized interfaces are also limited.


=== Task interface ===
Can be used as an interface to a task type.

type Printable is task interface;

All task interfaces are also synchronized.


=== Protected interface ===
Can be used as an interface to a protected type.

 type Printable is protected interface;

All protected interfaces are also synchronized.


== See also ==


=== Wikibook ===
Ada Programming
Ada Programming/Keywords
Ada Programming/Object Orientation
Ada Programming/Multiple Inheritance
Ada Programming/Tasking
Ada Programming/Pragmas/Interface (obsolescent)


=== Ada Reference Manual ===
2.9 Reserved Words (Annotated)
Annex P (informative) Syntax Summary (Annotated)


==== Ada 2005 ====
3.9.4 Interface Types (Annotated)


=== Ada Quality and Style Guide ===
3.1.3 Capitalization