\begin{slide}{Klassen, Interfaces}

abstrakter Datentyp: Operationen mit Zusicherungen
\begin{verbatim}
interface Map<K,V> {
    void put (K key, V value);
    V get (K key);
}
class TreeMap<K,V> implements Map<K,V> { ... }
class HashMap<K,V> implements Map<K,V> { ... }
\end{verbatim}
\dots ist aus der Mathematik längst bekannt:
\begin{verbatim}
interface Halbgruppe<M> { M mal (M x, M y); }
interface Monoid<M> extends Halbgruppe<M> 
    { M eins (); }
interface Gruppe<M> extends Monoid<M> 
    { M inverse (M x); }
\end{verbatim}


\end{slide}
%%% Local Variables: 
%%% mode: latex
%%% TeX-master: t
%%% End: 
