From 8a75612af5e1a7d150ff0f01f7f47234e5a8ee75 Mon Sep 17 00:00:00 2001 From: Henri Burau Date: Wed, 29 Apr 2020 13:38:13 +0200 Subject: [PATCH] Fill vererbung topic --- vererbung.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) 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.