Merge branch 'master' of git.haw-hamburg.de:pm1-tutorium/slides

This commit is contained in:
Henri Burau 2020-04-29 13:38:53 +02:00
commit 1945e9464d
2 changed files with 74 additions and 0 deletions

View File

@ -5,3 +5,50 @@ url: https://git.haw-hamburg.de/pm1-tutorium/slides
header: Programmieren 1 **Tutorium** header: Programmieren 1 **Tutorium**
footer: Henri Burau und Eva Meinen 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.

View File

@ -5,3 +5,30 @@ url: https://git.haw-hamburg.de/pm1-tutorium/slides
header: Programmieren 1 **Tutorium** header: Programmieren 1 **Tutorium**
footer: Henri Burau und Eva Meinen 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";}
}
```