[Java] Kann mir jemand this. und super. einfach erklären?

... komplette Frage anzeigen

1 Antwort

this;

Wird dazu benötigt um Instanz-Variablen von lokalen Variablen zu unterscheiden. Sprich:

private String test;

private void setTest(String test) {
    this.test = test;
}

Hierbei wird bei this immer auf Variablen (oder Methoden) der aktuellen Instanz der aktuellen Klasse verwiesen.


super

wird bei Vererbung benötigt. - Hierbei verweist du mit super auf eine Methode oder eine Variable der Klasse, von der du geerbt hast

Hier ein kleines Beispiel:


 abstract class Tier {

private String bezeichnung;
public Tier(String bezeichnung) {
this.bezeichnung = bezeichnung;
} public String getBezeichnung() { return bezeichnung; }
}

class Hund extends Tier {
public Hund() { super("Hund"); } @Override public String getBezeichnung() { return "Wauwau"; } }

Hier ruft "Hund" den Konstruktor der vererbten Klasse: Tier auf. Wodurch die Bezeichnung "Hund" gesetzt wird.

Tier z.B. hat auch die Methode getBezeichnung();

Befindet man sich nun in der Klasse Hund, könnte man theoretisch beide getBezeichnung() Methoden verwenden, und zwar:

  1. this.getBezeichnung()   // Verweist auf die aktuelle Klasse und gibt Wauwau zurück
  2. super.getBezeichnung() // Verweist auf die Vererbte Klasse und gibt Hund zurück
Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Azasel
17.02.2016, 09:43

Sehr tolle Beschreibung, danke sehr

0

Was möchtest Du wissen?