8.582
Bearbeitungen
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
| Zeile 73: | Zeile 73: | ||
// Will die Ausgabe auch den Namen ausgeben (der in der Oberklasse als private markiert ist), | // Will die Ausgabe auch den Namen ausgeben (der in der Oberklasse als private markiert ist), | ||
// muss die Methode "ausgabe()" der Oberklasse explizit aufgerufen werden. | // muss die Methode "ausgabe()" der Oberklasse explizit aufgerufen werden. | ||
public void ausgabe() { | |||
System.out.println( "Ich bin ein " + this.rasse ); | |||
super.ausgabe(); | |||
} | |||
} | |||
</syntaxhighlight> | |||
== Das Schlüsselwort <code>final</code> == | |||
Möchte man verhindern, dass eine Unterklasse eine Methode überschreibt, dann kann man sie als <code>final</code> deklarieren. | |||
<syntaxhighlight lang="java"> | |||
class Tier { | |||
// Das Attribut ist private und von der Unterklasse nicht nutzbar. | |||
private String name; | |||
public Tier( String pName ) { | |||
this.name = pName; | |||
} | |||
public final void ausgabe() { | |||
System.out.println( "Mein Name ist " + this.name ); | |||
} | |||
} | |||
class Hund extends Tier { | |||
private String rasse; | |||
public Hund( String pName, String pRasse ) { | |||
super(pName); | |||
this.rasse = pRasse; | |||
} | |||
// Fehler | |||
public void ausgabe() { | public void ausgabe() { | ||
System.out.println( "Ich bin ein " + this.rasse ); | System.out.println( "Ich bin ein " + this.rasse ); | ||