\begin{slide}{Ad-hoc-Polymorphie und Vererbung}

mathematisches Modell:
\begin{itemize}\itemsep 0pt\parskip 2pt
\item 
  durch \verb|class D extends C| usw.
  entsteht eine \emph{Halbordnung} auf Typen
  $(T,\le)$
\item dadurch auch auf Tupeln von Typen
  $(T^n,\le^n)$

  (Definition: komponentenweise)
\end{itemize}
Anwendung bei Auflösung des Aufrufs 
eines überladenen Methodennamens:
  \begin{itemize}\itemsep 0pt\parskip 2pt
  \item 
    bestimme die Menge $P$ der (sichtbaren) Methoden 
    mit Typ $t'$, 
    der zum Aufruf-Typ $t$ paßt
    (d.h. $t\le^n t'$)
\item
  bestimme $M: = $ die $\le^n$-minimalen 
  Elemente von $P$
\item
  falls $M$ genau ein Element enthält,
  dann wähle dieses,
  sonst ist Überladung nicht auflösbar
\end{itemize}

\end{slide}


