aboutsummaryrefslogtreecommitdiff
path: root/Info/10/2/Polymorphismus/handout.tex
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2023-04-26 15:23:29 +0200
committerFlorian Fischer <florian.fischer@muhq.space>2023-04-26 15:27:07 +0200
commitf2571c4dfd1df0371fee1191589264b84db10065 (patch)
tree9e5c04d49e2f5f2644dafc9ad7f3e48c12e81510 /Info/10/2/Polymorphismus/handout.tex
parente81c04b0a3813ed837ca1831a408a32c7d01a696 (diff)
downloadunterricht-f2571c4dfd1df0371fee1191589264b84db10065.tar.gz
unterricht-f2571c4dfd1df0371fee1191589264b84db10065.zip
add exercise sheet and slides_handout.md
Diffstat (limited to 'Info/10/2/Polymorphismus/handout.tex')
-rw-r--r--Info/10/2/Polymorphismus/handout.tex58
1 files changed, 58 insertions, 0 deletions
diff --git a/Info/10/2/Polymorphismus/handout.tex b/Info/10/2/Polymorphismus/handout.tex
new file mode 100644
index 00000000..b3b9bc70
--- /dev/null
+++ b/Info/10/2/Polymorphismus/handout.tex
@@ -0,0 +1,58 @@
+\documentclass{handout}
+
+\setlength\parindent{0pt}
+
+\begin{document}
+
+\textbf{AUFGABE 0:} Mache dich kurz mit dem Projekt Tierheim in der Online-IDE vertraut. \\
+Wie wird das Konzept der Vererbung im Code realisiert? \\[5mm]
+
+Wie wird der Konstruktor der Klasse Katze implementiert? \\[5mm]
+
+Welche Objekte sind bereits vorhanden? Führe das Programm aus. \\[5mm]
+
+\textbf{AUFGABE 1:} Überlege dir wie du unterschiedliche Tiere im Tierheim speicherst und setze deine Überlegung um. \\
+Welches Referenzattribut benötigt die Klasse Tierheim? \\[5mm]
+
+\textbf{AUFGABE 2:} Begründe warum Pluto (Objekt der Klasse Hund) nicht ins Tierheim aufgenommen werden kann. \\[5mm]
+
+\begin{multicols}{2}
+\begin{tikzpicture}[scale=0.45]
+ \begin{object}[text width=3.5cm]{th1}{0,0.5}
+ \instanceOf{Tierheim}
+ \attribute{tiere[0]}
+ \attribute{tiere[1]}
+ \attribute{...}
+ \end{object}
+
+ \begin{object}[text width=4cm]{h1}{12,0}
+ \instanceOf{Tier}
+ \attribute{name="Wolle"}
+ \attribute{geschlecht="ungewiss"}
+ \end{object}
+
+ \begin{object}[text width=4cm]{t1}{12,5}
+ \instanceOf{Hund}
+ \attribute{name="Pluto" }
+ \attribute{geschlecht="maennlich"}
+ \attribute{rasse="comic"}
+ \end{object}
+
+ \node[fill=black, circle, minimum size=0.05cm] (circle) at (2.2, -1.4) {};
+ \draw[line width=2pt, -latex, draw=blue!80] (circle) edge [bend left=30] (8, 4.5) {};
+ \node[fill=black, circle, minimum size=0.05cm] (circle2) at (2.2, -2.35) {};
+ \draw[line width=2pt, -latex, draw=red!80] (circle2) edge [bend right=15] (8, -0.5) {};
+\end{tikzpicture}
+
+\columnbreak
+
+Polymorphismus \textit{ist die Eigenschaft, dass ein \textbf{Referenzattribut} nicht nur Objekte der als Datentyp angegebenen Klasse referenzieren kann, sondern auch Objekte \textbf{aller} zu dieser Klasse existierenden \textbf{Unterklassen}.}
+
+\textit{Wird ein Objekt einer \textbf{Unterklasse} über dieses Referenzattribut referenziert, so werden Attribute und Methoden verwendet, wie sie in \textbf{seiner Klasse} bekannt sind (und nicht die überschriebenen Methoden der Oberklasse).}
+\end{multicols}
+
+
+\textbf{AUFGABE 3:} Vervollständige die Klasse Hund als Spezialisierung der Klasse Tier.
+
+\textbf{AUFGABE 4:} Implementiere die Methode \texttt{Tierheim.besuchen()} und überlege dir welche Ausgaben das Programm machen wird. Überprüfe deine Vermutung in dem du das Programm ausführst.
+\end{document}