# Abstrakte Methoden Eine Methode ohne Implementation ```java abstract 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 { abstract 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 * Ändere die Klasse `Animal` zu einer abstrakten Klasse. Alle Methoden die bei `Sheep` und `Cow` gleich sind müssen nicht abstrakt sein. Füge aber eine abstrakte Methode `String makeNoise()` ein. Ändere den Code and den richtigen Stellen ab.