LU05a - Vererbung

Eine Klasse kann eine oder gar mehrere Interfaces implementieren. Nichtabstrakte Klassen müssen alle Methoden ihrer implementierten Interfaces implementieren.

UML Java Typescript
public interface Animal {...}
public interface Bird extends Animal {...}
public class Penguin implements Bird {...}
interface Animal {...}
interface Bird extends Animal {...}
class Penguin implements Bird {...}

Eine abstrakte Klasse ist eine Zwischenform zwischen einem Interface und einer nichtabstrakten Klasse. Sie kann Methoden bereits implementieren oder ohne Implementation definieren. Von einer abstrakten Klasse kann keine direkte Instanz erstellt werden, nur von einer erbenden, nichtabstrakten Klasse.

UML Java
interface Animal {
    void eat();
}
abstract class Mammal implements Animal {
    @Override
    public void eat() {
        System.out.println("This mammal is eating.");
    }
 
    abstract void makeSound();
 
    public void breathe() {
        System.out.println("Breathing air...");
    }
}
class Dog extends Mammal {
    @Override
    void makeSound() {
        System.out.println("Woof!");
    }
}

Abstrakte Klassen sind daher nützlich, wenn man gewisse Basisfunktionen in einer gemeinsamen Parentklasse implementieren will, aber wiederum andere Methoden erst in der jeweiligen Implementierungsklasse.

  • de/modul/ffit/3-jahr/java/learningunits/lu05/a.txt
  • Zuletzt geändert: 2025/09/16 06:52
  • von apeter