<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">%% -*- mode: latex; TeX-master: "informatik.tex"; -*-

\begin{slide}{Beziehungen zwischen Klassen}

\kopf{$ $Id: erb.tex,v 1.1 2006-10-09 13:24:18 waldmann Exp $ $}

\begin{minipage}{0.5\textwidth}
D \emph{ist abgeleitet von} C \\
(oder: D \emph{erweitert} C):

D besitzt
\begin{itemize}\itemsep 0pt
\item alle Attribute und Methoden von C
\item und weitere, eigene.
\end{itemize}
\end{minipage}
\begin{minipage}{0.45\textwidth}
%\begin{small}
\begin{verbatim}
class C { 
  int a; 
  void m () { ... } 
}
class D extends C {
  int b; 
  void p () { ... }
}
\end{verbatim}
%\end{small}
\end{minipage}

Beispiele:
\begin{itemize} \itemsep 0pt
\item Basis: Zähler mit step, abgeleitet: \dots und reset
\item Basis: Grafik-Element, abgeleitet: \dots mit Farbe
\end{itemize}

\end{slide}

\begin{slide}{Kompatibilität}

überall, wo Objekte einer Basisklasse C erwartet werden,
dürfen auch Objekte davon abgeleiteter Klassen D benutzt werden:

\begin{verbatim}
class C { .. } ; class D extends C { .. }
\end{verbatim}
\begin{itemize}
\item bei Deklarationen, Zuweisungen:
\begin{verbatim}
C x = new D ();
\end{verbatim}
\item bei Unterprogramm-Aufrufen:
\begin{verbatim}
static void p (C x) { .. }
D y = new D (); p (y);
\end{verbatim}
\end{itemize}
\end{slide}

</pre></body></html>