![]() |
![]() |
![]() |
![]() |
![]() |
Vererbung kennst du aus Bio (Stammbaum der Artverwandschaften) oder aus dem täglichen Leben (Eltern vererben ein Vermögen oder dein Stammbaum). Und diese Idee der Vererbung kann man fürs Programmieren nutzen! Grundlegend für die Vererbung ist die Eltern-Kind-Relation: 'irgendwie' werden Eigenschaften von den Eltern auf das Kind vererbt. Was könnte man beim Programmieren vererben? Ganz einfach: Eine Klasse besteht aus Methoden und Eigenschaften und die können vererbt werden! An dieser Stelle die zentrale Frage: Welche Eigenschaften gibt es in der Klasse
BankKonto.java
?
______________________________________________________
Und welche Methoden stellt die Klasse
BankKonto.java
zur Verfügung?
______________________________________________________
______________________________________________________
______________________________________________________
In Java funktioniert Vererbung so: Ein Klasse kann mehrere Kinder haben, man sagt hier Subklassen, umgekehrt kann eine Subklasse aber nur eine Elternklasse haben! Die Elternklasse nennt man auch Superklasse, manche sprechen an dieser Stelle auch gerne von Vorgänger und Nachfolger. Und wie sagt man Java, dass eine Klasse eine andere beerben soll? So:
class BankKontoExt extends BankKonto
Das Zauberwort hier ist extends
, wir schauen uns ein Beispiel an . . .
Zuerst das UML-Klassendiagramm:
Welche neuen Eigenschaften hat die Klasse BankKontoExt.java
?
______________________________________________________
Und welche neuen Methoden stellt die Klasse BankKontoExt.java
zur Verfügung?
______________________________________________________
______________________________________________________
______________________________________________________
Gibt es in der Klasse BankKontoExt.java
Konstruktoren? Wenn ja, welche?
______________________________________________________
Wer will, kann seine Antworten auch anhand des Quelltextes überprüfen: http://www.wspiegel.de/upl/BankKontoExt.html, vergleiche im übrigen die Aufgaben.
<<<In UML wird Vererbung durch einen Pfeil gekennzeichnet, üblich ist neben der Darstellung oben auch die folgende:
Beachte: Der Pfeil geht von der Subklasse (Welche?) zur Superklasse (Welche?), oder: der Pfeil geht von der Unterklasse zur Oberklasse!
<<<findest du im Lehrer-Ordner rechts oben auf dem Desktop unter wspiegel u. s. w.; alternativ: http://www.wspiegel.de/upl/BankKontoExt.html
<<<sichereAuszahlung
die Klasse BankKontoExt
zurück, und wo wird die Methode in der Klasse benutzt?BankKontoExt
will man auch auf die Klasse BankKonto
zugreifen, das Zauberwort ist hier super
, Beispiel: super.anzeigen();
. BankKontoExt
auf die Klasse BankKonto
zugreift.BankApp.java
) und benutze diesmal ausschließlich (!) die Aufrufe der Klasse BankKontoExt
. Probiere auch die Methode ueberweisung
, Testlauf:
tk1: Kontostand=305.0 tk2: Kontostand=100.0 Überweise 33.0 tk1: Kontostand=338.0 tk2: Kontostand=67.0PS: Wie kann man eigentlich die Namen der Bankkonten ausgeben?
TaschengeldKonto.java
vom letzten Mal so um, dass sie die Klasse BankKontoExt
beerbt (Superklasse: ________________, Subklasse: ______________), verpflichtend ist die Benutzung von extends
TaschengeldKonto
: Schreibe eine neues Anwendungsprogramm BankApp2.java
, in der du die Klasse TaschengeldKonto
ausgiebig prüfst! Was passiert bei Überweisungen?