Weshalb ist Java heute so wichtig - weil es eine Fourth Generation Language ist und wir immerzu das Allerneueste wollen? Oder weil man damit Gründungsparteitage und atomare Erstschläge abbilden kann? Nein, viel elementarer: wie in der modernen Gesellschaft auch geht es bei Java um Objekt-Orientierung und Vererbung. Widmen wir uns also heute ein wenig der Vererbung.
Dazu legen wir uns ein neues Projekt mit dem Namen "Vererbung" an und erzeugen eine abstrakte Klasse "Ahnen". Abstract deshalb, weil sie nur zur Vererbung dienen und keine eigenn Instanzen haben soll (was interessieren uns die Urgroßeltern?!). Wir statten die Klasse mit dem Attribut "Vermögen" aus:
private double vermögen; // private signalisiert: die Öffentlichkeit hat keinen Zugriff!
sowie einer Methode: getErbschaft()
die benötigt wird, um eine Erbschaft antreten zu können. So weit so gut. Nun leiten wir von "Ahnen" eine Klasse "Großvater" ab (der Einfachheit halber beschränke ich mich auf die männliche Linie):
public class Grossvater extends Ahnen
Und siehe da: von Geburt an ist der Großvater mit Vermögen und der Fähigkeit zu erben ausgestattet. Das Vermögen soll aber auch wachsen, und deshalb fügen wir der Klasse eine weitere Methode hinzu:
public double mehreGeld()
{
vermögen = vermögen * zinssatz;
}
Zu Großvaters Zeiten war dieses eher konservative Modell recht populär und wir wollen es erst einmal dabei belassen. Auf Großvater folgt Vater, auf Vater Sohn:
public class Vater extends Grossvater
public class Sohn extends Vater
Geht das nun immer so weiter, wird all das schöne Geld nur vererbt und vererbt und vererbt? Keineswegs! Wir verfeinern die Definition von "Sohn" ein kleines bißchen:
public final class Sohn extends Vater
final bedeutet nämlich, daß hier die Vererbung endet, das Vermögen steht zur Verfügung, was ich hab, geb ich nicht wieder her; ein Leben in Saus, vielleicht sogar in Braus winkt.
Mit dieser - wie ich hoffe - eindrucksvollen Demonstration der Lebensnähe von Java endet der erste Teil meiner kleinen Einführung in die objekt-orientierte Programmierung mit Java. Ein zweiter Teil ist bereits in Vorbereitung und trägt den Arbeitstitel "Java bis der Arzt kommt".
Dazu legen wir uns ein neues Projekt mit dem Namen "Vererbung" an und erzeugen eine abstrakte Klasse "Ahnen". Abstract deshalb, weil sie nur zur Vererbung dienen und keine eigenn Instanzen haben soll (was interessieren uns die Urgroßeltern?!). Wir statten die Klasse mit dem Attribut "Vermögen" aus:
private double vermögen; // private signalisiert: die Öffentlichkeit hat keinen Zugriff!
sowie einer Methode: getErbschaft()
die benötigt wird, um eine Erbschaft antreten zu können. So weit so gut. Nun leiten wir von "Ahnen" eine Klasse "Großvater" ab (der Einfachheit halber beschränke ich mich auf die männliche Linie):
public class Grossvater extends Ahnen
Und siehe da: von Geburt an ist der Großvater mit Vermögen und der Fähigkeit zu erben ausgestattet. Das Vermögen soll aber auch wachsen, und deshalb fügen wir der Klasse eine weitere Methode hinzu:
public double mehreGeld()
{
vermögen = vermögen * zinssatz;
}
Zu Großvaters Zeiten war dieses eher konservative Modell recht populär und wir wollen es erst einmal dabei belassen. Auf Großvater folgt Vater, auf Vater Sohn:
public class Vater extends Grossvater
public class Sohn extends Vater
Geht das nun immer so weiter, wird all das schöne Geld nur vererbt und vererbt und vererbt? Keineswegs! Wir verfeinern die Definition von "Sohn" ein kleines bißchen:
public final class Sohn extends Vater
final bedeutet nämlich, daß hier die Vererbung endet, das Vermögen steht zur Verfügung, was ich hab, geb ich nicht wieder her; ein Leben in Saus, vielleicht sogar in Braus winkt.
Mit dieser - wie ich hoffe - eindrucksvollen Demonstration der Lebensnähe von Java endet der erste Teil meiner kleinen Einführung in die objekt-orientierte Programmierung mit Java. Ein zweiter Teil ist bereits in Vorbereitung und trägt den Arbeitstitel "Java bis der Arzt kommt".