interface Definition
Classes and Interfaces
noreferences
@@tooltip An interface defines a set of method signatures that a class must implement

@@description
<p>      
An interface defines a list of abstract <a href="MethodDefinition.html">methods</a> that are to be implemented in one or more classes.  An interface can be composed of the following elements: 
</p>

<ul>
<li><a href="Dependclause.html">Dependencies</a></li>
<li><a href="MethodDefinition.html">Method declarations</a> (methods with no body)</li>
<li><a href="isAclause.html">isA clauses</a> (placing interfaces in an inheritance hierarchy)</li>
</ul>

<p>To implement an interface in a class, or to create subinterfaces, use an <a href="isAclause.html">isA clause</a>.</p>

<p>Umple also supports a feature called <a href="Traits.html">traits</a>, that has some similarities to interfaces. However, traits concrete methods, attributes and state machines to also be contained in them.</p>

<p>In the following example, RegisterCapable is an interface that defines a single abstract method registerForCourse(). This is implemented concretely by CorporateClient and IndividualStudent.</p>

@@syntax
[[interfaceDefinition]] [[interfaceBody]] [[interfaceMemberDeclaration]]

@@example
@@source manualexamples/interfaceDefinition1.ump
@@endexample
