Programmieren_1/vererbung.md

58 lines
1.3 KiB
Markdown

<!--
title: Vererbung
description: Folien für Vererbung in Programmieren 1
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 extends Shape {
public String toString() {
return "Rectangle";
}
}
class Circle extends Shape {
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.