diff --git a/vererbung.md b/vererbung.md index a09d10f..b369801 100644 --- a/vererbung.md +++ b/vererbung.md @@ -5,3 +5,53 @@ url: https://git.haw-hamburg.de/pm1-tutorium/slides header: Programmieren 1 **Tutorium** footer: Henri Burau und Eva Meinen --> + +# Vererbung +Weitergeben von bereits geschriebenen Code an Subklassen. Sinnvoll +auch zum Aufstellen einer Vererbungshierarchie. + +--- + +## Deklaration + +```java +class Shape { + public String toString() { + return "Shape"; + } +} + +class Rectangle { + public String toString() { + return "Rectangle"; + } +} + +class Circle { + public String toString() { + return "Circle"; + } +} +``` + +--- + +## Benutzung + +```java +// In main... +Shape shape = new Shape(); +Rectangle rectangle = new Rectangle(); +shape.toString(); +rectangle.toString(); +shape = rectangle; +shape.toString(); +``` + +--- + +# Aufgaben +* Schreibe eine Klasse `Cow`, welche dieselben Methoden hat wie ein `Sheep` +* Ergänze `Cow` und `Sheep` um eine Methode `String makeNoise()`, ein `Schaf` soll `"Mäh"` zurückgeben, eine `Cow` `"Muh"`. +* Schreibe nun eine Klasse `Animal`. Von dieser Klasse sollen `Sheep` und `Cow` erben. Alle Methoden die bei `Sheep` und `Cow` genau gleich sind, sollen nun in die Superklasse `Animal` verschoben werden. +* Ändere den `Shepherd` so ab, dass er nur noch `Animal` akzeptiert.