Letzte Änderung:
20.03.2012



Spruch des Tages

Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen.

Albert Einstein
Java




Vererbung



Bei der Vererbung wird eine neue Klasse auf Basis der abgeleiteten Klasse erzeugt. Die erbende Klasse, also die neue abgeleitete Klasse übernimmt dabei alle Eigenschaften und Methoden der vererbenden Klasse.

Die vererbende Klasse wird in der Literatur als Super-Klasse bezeichnet. In wenigen Fällen lesen Sie auch Begriffe, wie Basis-Klasse, übergeordnete Klasse oder ableitende Klasse. Für die erbende Klasse gibt es Begrifflichkeiten, wie abgeleitete Klasse, untergeordnete Klasse, Unter-Klasse oder Subklasse. Die Variablen der Superklasse können über die Objektreferenzvariable super gerufen werden. Hier gelten die selben Regeln, wie für this.

Syntax für das Erben von Klassen:

[Zugriffsmodifizierer] class Bezeichner extends Superklasse

Beispiel:

public class Auto extends Motor

Beispiel in einer kleinen Anwendung basierend auf dem folgenden UML-Klassen-Diagramm:

Vererbung


-----------Dateiname: Medikament.java-----Speicherort: c:\Java


import de.Pakete.*;

public class Medikament
{
	public static void main(String[] args)
	{
		Zutaten VitaminC = new Zutaten();
		VitaminC.Menge[0]  = 9;
		VitaminC.Wirkstoff[0] = "Ascorbinsaeure";
		VitaminC.Wirkung[0]   = "In seltenen Faellen passiert nichts";
		VitaminC.Anzeige_Zutaten();
	//2
		Nebenwirkungen Risiko = new Nebenwirkungen();
		Risiko.Anzeige_Wirkung(0);
	}
}

-----------Dateiname: Zutaten.java-----Speicherort: c:\Java\de\Pakete

package de.Pakete;

public class Zutaten extends Nebenwirkungen
{
	public String[] Wirkstoff = new String[10];
	public int[]    Menge     = new int[10];
	
	public void Anzeige_Zutaten()
	{
		int i;
		for(i = 0; i < 10; i++)
		{
			if(this.Wirkstoff[i]!=null)
			{
				System.out.printf("\nZutat %d enthaelt ",i+1);
				System.out.printf("%d mg ",this.Menge[i]);
				System.out.printf("%s",this.Wirkstoff[i]);
				super.Anzeige_Wirkung(i);
			}
		}
	}
}

-----------Dateiname: Nebenwirkungen.java-----Speicherort: c:\Java\de\Pakete

package de.Pakete;

public class Nebenwirkungen
{
	public String[] Wirkung = new String[10];
	
	public void Anzeige_Wirkung(int Wert)
	{
		System.out.printf("\nt - Nebenwirkung: %s",this.Wirkung[Wert]);
	}
}


Wenn Sie die main()-Klasse ab dem Kommentar //2 betrachten, werden Sie feststellen, dass die passive Super-Klasse plötzlich zu einer aktiven Klasse werden kann.