Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
programmierung:klassen:vererbung [2024/08/25 16:26] sweprogrammierung:klassen:vererbung [2025/12/20 14:53] (current) – external edit 127.0.0.1
Line 1: Line 1:
-====== Vererbung ======+Vererbung
  
-===== Superklasse und Subklasse =====+## Superklasse und Subklasse
  
-Vererbung ist ein grundlegendes Konzept in der objektorientierten Programmierung (OOP), das es ermöglicht, eine neue Klasse auf Basis einer bestehenden Klasse zu erstellen. Die neue Klasse, die als **Subklasse** oder Kindklasse bezeichnet wird, erbt die Eigenschaften und Methoden der bestehenden Klasse, die als **Superklasse** oder Elternklasse bezeichnet wird. Dies fördert die Wiederverwendbarkeit von Code und die Hierarchisierung von Klassen.+Vererbung ist ein grundlegendes Konzept in der objektorientierten 
 +Programmierung (OOP), das es ermöglicht, eine neue Klasse auf Basis 
 +einer bestehenden Klasse zu erstellen. Die neue Klasse, die als 
 +**Subklasse** oder Kindklasse bezeichnet wird, erbt die Eigenschaften 
 +und Methoden der bestehenden Klasse, die als **Superklasse** oder 
 +Elternklasse bezeichnet wird. Dies fördert die Wiederverwendbarkeit von 
 +Code und die Hierarchisierung von Klassen.
  
-==== Superklasse ====+### Superklasse
  
-Stellen wir uns vor, wir entwickeln eine Anwendung für ein Tierheim. Wir beginnen mit einer allgemeinen Klasse ''Tier'', die grundlegende Eigenschaften und Methoden für alle Tiere definiert.+Stellen wir uns vor, wir entwickeln eine Anwendung für ein Tierheim. Wir 
 +beginnen mit einer allgemeinen Klasse `Tier`, die grundlegende 
 +Eigenschaften und Methoden für alle Tiere definiert.
  
-<code java  | Tier.java>+``` java
 // Superklasse // Superklasse
 public class Tier { public class Tier {
Line 42: Line 50:
 } }
  
-</code>+```
  
-==== Subklasse ====+### Subklasse
  
-Nun erstellen wir eine Subklasse ''Hund'', die von der Klasse ''Tier'' erbt. Die Klasse ''Hund'' wird die Eigenschaften und Methoden der Klasse Tier übernehmen und kann zusätzliche Eigenschaften und Methoden hinzufügen oder bestehende Methoden überschreiben.+Nun erstellen wir eine Subklasse `Hund`, die von der Klasse `Tiererbt. 
 +Die Klasse `Hundwird die Eigenschaften und Methoden der Klasse Tier 
 +übernehmen und kann zusätzliche Eigenschaften und Methoden hinzufügen 
 +oder bestehende Methoden überschreiben.
  
-In diesem Beispiel erbt die Klasse ''Hund'' die Eigenschaften ''name'' und ''alter'' sowie die Methode ''makeSound'' von der Klasse ''Tier''. Die Methode ''makeSound'' wird in der Klasse ''Hund'' überschrieben, um ein spezifisches Verhalten für Hunde zu definieren.+In diesem Beispiel erbt die Klasse `Hunddie Eigenschaften `nameund 
 +`altersowie die Methode `makeSoundvon der Klasse `Tier`.
  
-<code java | Hund.java>+``` java
 // Subklasse // Subklasse
 public class Hund extends Tier { public class Hund extends Tier {
Line 75: Line 87:
 } }
  
-</code>+```
  
 +#### Aufruf des Konstruktors der Superklasse: super()
  
-==== Zusammenspiel/ Verwendung der Klassen ====+Beachte Zeile 6: Hier wird durch `super(name, alter)` der Konstruktor 
 +der Superklasse `Tier` aufgerufen und die dort geforderten Parameter 
 +`name` und `alter` übergeben.
  
-<code java | Main>+Eigenschaften werden immer im Konstruktor der Klasse übergeben, die die 
 +Eigenschaften definiert. 
 + 
 +So können auf dem Weg von einer Superklasse zur nächsten Subklasse und 
 +vielleicht sogar noch einer und noch einer Subklasse einige 
 +Eigenschaften und Parameter zusammenkommen. 
 + 
 +Immer wenn eine Superklasse Parameter übergeben bekommt, muss in der 
 +Subklasse der **Konstruktor der Superklasse** mit eben diesen Parametern 
 +aufgerufen werden. 
 + 
 +Dieser Aufruf findet im Konstruktor statt. 
 + 
 +Der Aufruf `super(variable_x, variable_y)` ist **immer der erste Aufruf 
 +im Konstruktor**. 
 + 
 +``` java 
 +... 
 +    public Hund(String name, int alter, String rasse) { 
 +        super(name, alter); // Aufruf des Konstruktors der Superklasse 
 +        this.rasse = rasse; 
 +    } 
 +... 
 +``` 
 + 
 +#### Überschreiben von Methoden der Superklass: \@override 
 + 
 +Die Methode `makeSound` wird in der Klasse `Hund` überschrieben, um ein 
 +spezifisches Verhalten für Hunde zu definieren. 
 + 
 +``` java 
 +    ... 
 +    @Override 
 +    public void makeSound() { 
 +        System.out.println("Der Hund bellt"); 
 +    } 
 +    ... 
 +``` 
 + 
 +### Zusammenspiel/ Verwendung der Klassen 
 + 
 +``` java
 public class Main { public class Main {
     public static void main(String[] args) {     public static void main(String[] args) {
Line 95: Line 151:
 } }
  
-</code>+```