\begin{slide}{Ad-Hoc-Polymorphie}

  \begin{itemize}\itemsep 0pt
  \item ein Bezeichner ist \emph{überladen},
    wenn er mehrere (gleichzeitig sichtbare)
    Deklarationen hat
  \item bei jeder Benutzung des Bezeichners
    wird die Überladung dadurch 
    \emph{aufgelöst}, daß die Deklaration
    mit dem jeweils (ad-hoc) passenden Typ 
    ausgewählt wird
  \end{itemize}
Beispiel: Überladung im Argumenttyp:
\begin{verbatim}
static void p (int x, int    y) { ... }
static void p (int x, String y) { ... }
p (3, 4); p (3, "foo");
\end{verbatim}
keine Überladung nur in Resultattyp, denn\dots
\begin{verbatim}
static int    f (boolean b) { ... }
static String f (boolean b) { ... }
\end{verbatim}



\end{slide}
