\documentclass{schulein}
\usepackage[utf8]{inputenc}
\usepackage{schulinf}

% Dieses Dokument ist in der Zusammenarbeit von Informatikreferendaren und
% ehemaligen Informatikreferendaren der Studienseminare (heute ZfsL) Arnsberg,
% Hamm und Solingen entstanden.
%
% Das Dokument steht unter der Lizenz: Creative Commons by-nc-sa Version 4.0
% http://creativecommons.org/licenses/by-nc-sa/4.0/deed.de
%
% Nach dieser Lizenz darf das Dokument beliebig kopiert und bearbeitet werden,
% sofern das Folgeprodukt wiederum unter gleichen Lizenzbedingungen vertrieben
% und auf die ursprünglichen Urheber verwiesen wird.
% Eine kommerzielle Nutzung ist ausdrücklich ausgeschlossen.
%
% Die Namensnennung durch einen Verweis und die Lizenzangabe der ursprünglichen
% Urheber auf den Materialien für Schülerinnen und Schüler ist erforderlich.
%
% Die Sammlung der Dokumente steht unter
% http://ddi.uni-wuppertal.de/material/materialsammlung/
% zur Verfügung.
%
% Das LaTeX-Paket zum Setzen der Dokumente der Sammlung steht
% unter  http://www.ctan.org/pkg/schule
% zur Verfügung.

\usepackage[pdfauthor={Referendare der Informatikfachseminare Arnsberg, Hamm und Solingen}]{hyperref}
\includexmp{lizenz}
\cclizenz{byncsaeu}
\footerQRLink{materialsammlung_qr_url.pdf}

\svnid{$Id: info_02_vererbung.tex 626 2014-05-22 21:36:50Z pieper $}

\dokName{Beziehungen von Klassen}
\jahrgang{EF}

\begin{document}
\section*{Vererbung}
Ein wichtiges Konzept der Objektorientierung ist die Vererbung. Dabei werden die Methoden und Attribute von den Elternklassen an die Kindklassen vererbt. Die Kindklassen können zusätzliche Attribute und Methoden bekommen. Außerdem besteht die Möglichkeit geerbte Methoden neu zu definieren. Dabei muss aber der Methodenkopf erhalten bleiben. Der Fachbegriff dafür lautet überladen.

In Java darf jede Klasse nur maximal von einer anderen Klasse abstammen. Ist bei einer Klasse keine Abstammung angegeben, so stammt sie in Java automatisch von der Klasse Objekt ab. In Java wird die Abstammung geschrieben mit folgendem Klassenkopf:
\begin{lstlisting}
public calss <Kindklassenname> extends <Elternklassenname> {
\end{lstlisting}

Attribute müssen nicht mehr in den Kindklassen angegeben werden, wenn sie weiter genutzt werden. Die Attributwerte werden nicht vererbt, da sie  schon für jedes Objekt einer Klasse unterschiedlich sein können. Sollen Attribute und Methoden auch von Kindklassen genutzt werden können, so dürfen sie nicht mit \lstinline|private| definiert werden. Damit aber nicht von außen auf sie zugegriffen werden kann, wird das Schlüsselwort \lstinline|protected| stattdessen genutzt.

\end{document}
