Video: Vererbung in Java für Anfänger 2024
Vererbung bezieht sich auf ein Feature der Java-Programmierung, mit dem Sie Klassen erstellen können, die von anderen Klassen abgeleitet sind. Eine Klasse, die auf einer anderen Klasse basiert, erbt die andere Klasse. Die geerbte Klasse ist die Elternklasse, die Basisklasse , oder die Superklasse. Die Klasse, die das Erben durchführt, ist die -Klasse, die abgeleitete Klasse, oder die -Klasse.
Eine Unterklasse übernimmt automatisch alle Verhaltensweisen und Attribute ihrer Basisklasse. Wenn Sie also mehrere Klassen erstellen müssen, um Typen zu beschreiben, die nicht identisch sind, aber viele Merkmale gemeinsam haben, können Sie eine Basisklasse erstellen, die alle gemeinsamen Merkmale definiert. Dann können Sie Unterklassen erstellen, die die allgemeinen Funktionen übernehmen.
Eine Unterklasse kann der ererbten Basisklasse Features hinzufügen, indem sie ihre eigenen Methoden und Felder definiert. Dies ist einer der Wege, wie sich eine abgeleitete Klasse von ihrer Basisklasse unterscheidet.
Eine Unterklasse kann auch das Verhalten der Basisklasse ändern. Eine Basisklasse kann vorsehen, dass alle von ihr abgeleiteten Klassen zum Beispiel eine Methode namens play haben, aber jeder Klasse ist es freigestellt, ihre eigene Implementierung der Spielmethode bereitzustellen. In diesem Fall stellen alle Klassen, die die Basisklasse erweitern, ihre eigene Implementierung der Wiedergabemethode bereit.
Um eine Unterklasse zu erstellen, verwenden Sie das Schlüsselwort extends in der Klassendeklaration, um den Namen der Basisklasse anzugeben. Das Basisformat einer Unterklassendeklaration lautet:
public class ClassName erweitert BaseClass {// Klassenrumpf geht hier}
Die Unterklasse erbt automatisch den Klassenrumpf der Basisklasse, also Alle Methoden oder Felder, die von der Basisklasse definiert werden, werden automatisch in die Unterklasse aufgenommen. Daher enthält der Klassenrumpf für eine Unterklasse nur die Methoden oder Felder, die die Unterklasse von ihrer Basisklasse unterscheiden.
Angenommen, Sie haben eine Klasse namens Ball, die einen Basisball definiert, und Sie möchten eine Unterklasse namens BouncingBall erstellen, die die Fähigkeit zum Bouncen hinzufügt. Sie könnten das so machen:
public class BouncingBall erweitert Ball {public void bounce () {// die Bounce-Methode}}
Hier einige weitere wichtige Details zum Erstellen von Unterklassen:
-
Eine Unterklasse erbt alle Mitglieder aus seiner Basisklasse. Konstruktoren werden jedoch nicht betrachtet. Infolgedessen erbt eine Unterklasse nicht Konstruktoren von ihrer Basisklasse.
-
Die Sichtbarkeit (öffentlich oder privat) aller Mitglieder, die von der Basisklasse geerbt werden, ist in der Unterklasse gleich.Das bedeutet, dass Sie nicht auf die Unterklassenmethoden oder -felder zugreifen können, die in der Basisklasse als privat deklariert sind.
-
Sie können eine Methode überschreiben, indem Sie ein neues Mitglied mit derselben Signatur in der Unterklasse deklarieren.
-
Ein spezieller Typ von Sichtbarkeit, der als protected bezeichnet wird, blendet Felder und Methoden aus anderen Klassen aus, macht sie jedoch für Unterklassen verfügbar.
-
Sie können einer Unterklasse weitere Methoden oder Felder hinzufügen - privat, öffentlich oder geschützt.