Heute wirst du lernen:
extends-Schlüsselwort verwendetsuper-SchlüsselwortAm Ende wirst du in der Lage sein, Klassenhierarchien zu erstellen und Polymorphie effektiv zu nutzen.
Verwende extends, um eine Unterklasse von einer Basisklasse zu erstellen.
class Animal {
void makeSound() {
System.out.println("Animal sound");
}
}
class Dog extends Animal {
void makeSound() {
System.out.println("Woof");
}
}
Erklärung:
Dog ist eine Unterklasse von AnimalEine Unterklasse kann eine eigene Implementierung einer Methode bereitstellen.
class Dog extends Animal {
void makeSound() {
System.out.println("Woof");
}
}
Erklärung:
Dog überschreibt makeSound()super bezieht sich auf die Elternklasse und kann verwendet werden, um Methoden oder Konstruktoren der Elternklasse aufzurufen.
class Dog extends Animal {
void makeSound() {
super.makeSound(); // ruft Animal makeSound auf
System.out.println("Woof");
}
}
Polymorphie erlaubt es, dass eine Elternklassen-Referenz auf ein Kindobjekt zeigt.
Animal myAnimal = new Dog();
myAnimal.makeSound(); // Gibt "Woof" aus
Erklärung:
class Animal {
void makeSound() {
System.out.println("Animal sound");
}
}
class Dog extends Animal {
void makeSound() {
System.out.println("Woof");
}
}
Erstelle eine Basisklasse Shape und die Unterklassen Circle und Rectangle mit überschriebenen Methoden.
Schritte:
Shape-Klasse mit einer Methode draw()Circle und Rectangledraw() in jeder Unterklassedraw() aufBeispiel:
class Shape {
void draw() {
System.out.println("Zeichne eine Form");
}
}
class Circle extends Shape {
void draw() {
System.out.println("Zeichne einen Kreis");
}
}
class Rectangle extends Shape {
void draw() {
System.out.println("Zeichne ein Rechteck");
}
}
public class Main {
public static void main(String[] args) {
Shape shape1 = new Circle();
Shape shape2 = new Rectangle();
shape1.draw(); // Zeichne einen Kreis
shape2.draw(); // Zeichne ein Rechteck
}
}