From c0c7a256baca27f8d3ca32a2168bd915059c936e Mon Sep 17 00:00:00 2001 From: acp059 Date: Wed, 29 Apr 2020 13:38:30 +0200 Subject: [PATCH] Add interfaces and abstract --- abstract.md | 47 +++++++++++++++++++++++++++++++++++++++++++++++ interface.md | 27 +++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) diff --git a/abstract.md b/abstract.md index 6b29273..086854b 100644 --- a/abstract.md +++ b/abstract.md @@ -5,3 +5,50 @@ url: https://git.haw-hamburg.de/pm1-tutorium/slides header: Programmieren 1 **Tutorium** footer: Henri Burau und Eva Meinen --> + +# abstrakte Methoden + +Eine Methode ohne Implementation + +```java +abstact double getArea(); +``` + +--- + +# abstrakte Methoden + +Eine Klasse mit mindestens einer abstrakten Methode muss abstrakt sein + +Es können keine Objekte einer abstrakten Klasse erzeugt werden + +```java +abstract class Shape { + abstact double getArea(); + String toString() { + return "Shape"; +} +``` + +--- + +Es können keine Objekte einer abstrakten Klasse erzeugt werden, jedoch Variablen dieser ein Objekt einer nicht abstrakten Subklasse aufnehmen: + +```java +class Circle extends Shape { + private double radius; + Circle(int rad) {radius = rad; } + + double getArea(){ + return 3.14 * radius * radius; + } +} +//Shape shape1 = newCircle(4); +//System.out.printf("%.2f", shape1.getArea()); +``` + +--- + +# Übung + +* Lasse die Klasse sheep (und andere Tiere) von einer abstrakten Klasse animal erben. Ändere den Code and den richtigen Stellen ab. \ No newline at end of file diff --git a/interface.md b/interface.md index c21d262..28dc698 100644 --- a/interface.md +++ b/interface.md @@ -5,3 +5,30 @@ url: https://git.haw-hamburg.de/pm1-tutorium/slides header: Programmieren 1 **Tutorium** footer: Henri Burau und Eva Meinen --> + +# Interfaces + +Schnittstelle + +nur Methodendeklaration (öffentliche Methoden) + +```java +interface Shape { + double getArea(); + String toString(); +} +``` +--- + +Erbende Klassen implementieren ein Interface (auch mehr als eines möglich) + +```java +class Circle implements Shape { + private double radius; + double getArea(){ + return 3.14 * radius * radius; + } + String toString() { + return "Circle";} +} +``` \ No newline at end of file