Aufruf der Methode einer Oberklasse, wenn sie in der Unterklasse überschrieben ist. Polymorphie.

texs89

Mitglied
Hallo,
wie kann ich die Methode der Oberklasse aufrufen? Ich caste unten das Objekt hund1 in ein Tier und rufe die Methode sprechen() auf. Es wird aber nur 2 mal "Ich bin ein Hund" ausgegeben. Warum?

Java:
public class Tier {
    public void sprechen() {
        System.out.println("Ich bin ein Tier.");
    }
}

public class Hund extends Tier {
    public void sprechen() {
        System.out.println("Ich bin ein Hund.");
    }
}

public class Main {
    public static void main(String[] args) {
        Tier hund1 = new Hund();
        hund1.sprechen(); // gibt "Ich bin ein Hund." aus
        ((Tier) hund1).sprechen(); // soll "Ich bin ein Tier." ausgeben
    }
}
 

LimDul

Top Contributor
Du kommst von außen nicht an die Methode sprechen der Klasse Tier dran. Das soll bewusst so sein und ist einer der Grundpfeiler der Polymorphie. Es wird von außen immer die Methode der echten Instanz (hier Hund) aufgerufen, egal wie die Variable definiert ist.

Was geht ist in der Klasse auf die Methoden der Oberklasse zuzugreifen. Das heißt, du könntest die Methode sprechen z.B. so schreiben

Java:
public class Hund extends Tier {
    public void sprechen() {
        System.out.println("Ich bin ein Hund.");
        super.sprechen();
    }
}
In der Klasse kann auf die Methoden der Oberklasse mittels einem davorgestellen super zugegriffen werden - aber von außen geht es nicht.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Methoden NPE beim Aufruf einer Methode einer anderen Klasse Java Basics - Anfänger-Themen 4
J Aufruf einer Methode über einen String Java Basics - Anfänger-Themen 11
D Aufruf einer Methode einer anderen Klasse Java Basics - Anfänger-Themen 39
V Problem Aufruf einer Methode in einer Methode Java Basics - Anfänger-Themen 1
I Rückgabe und Aufruf einer Methode innerhalb einer anderen Methode Java Basics - Anfänger-Themen 5
S Aufruf Einer Methode aus einer anderen Klasse - Static Fehler Java Basics - Anfänger-Themen 4
L Klassen Aufruf einer ueberschreibbaren Methode im Konstruktor Java Basics - Anfänger-Themen 4
C Exception beim Aufruf einer Methode Java Basics - Anfänger-Themen 2
A Aufruf einer Methode Java Basics - Anfänger-Themen 3
F Variabler Aufruf einer Methode Java Basics - Anfänger-Themen 10
S Fehlermeldung beim Aufruf einer Methode Java Basics - Anfänger-Themen 3
2 Aufruf einer Methode klappt nicht Java Basics - Anfänger-Themen 3
M Problem beim Aufruf einer Methode: Wo is der Fehler? Java Basics - Anfänger-Themen 12
C Aufruf von Klassen aus einer STATIC Methode mit Parameter Java Basics - Anfänger-Themen 2
D Frage zum Aufruf einer toString-Methode Java Basics - Anfänger-Themen 2
G Aufruf einer Methode Java Basics - Anfänger-Themen 4
W Problem mit dem Aufruf einer Methode Java Basics - Anfänger-Themen 2
G Main Methode wird beim ersten Aufruf nicht richtig ausgeführt Java Basics - Anfänger-Themen 1
Y Aufruf von Methode nicht möglich. Java Basics - Anfänger-Themen 2
X Methode bei mehrfachen Aufruf kein Effekt Java Basics - Anfänger-Themen 3
P Aufruf Methode anderer Klasse Java Basics - Anfänger-Themen 5
A Fehlermeldung beim aufruf der main Methode Java Basics - Anfänger-Themen 17
M Unbekannte Nummer bei Aufruf der toString Methode Java Basics - Anfänger-Themen 3
D Methode mit mehren Rekursiven aufrufen in Methode mit einem Rekursiven Aufruf umwandeln! Java Basics - Anfänger-Themen 1
N Aufruf der Methode Java Basics - Anfänger-Themen 16
A Aufruf der paint() Methode Java Basics - Anfänger-Themen 3
R Aufruf statische Methode Java Basics - Anfänger-Themen 7
J Aufruf der Methode Java Basics - Anfänger-Themen 6
T aufruf methode in methode macht probleme Java Basics - Anfänger-Themen 9
G Aufruf - Methode Java Basics - Anfänger-Themen 2
M Prinzip der Kapselung - Wie Aufruf der Methode? Java Basics - Anfänger-Themen 2
P Konstruktor-Aufruf IN der Methode? Java Basics - Anfänger-Themen 2
Paule Aufruf nicht statischer Methode in statischer MEthode Java Basics - Anfänger-Themen 7
S Fehler beim Aufruf meiner Methode, warum? Java Basics - Anfänger-Themen 16
S Aufruf von Methode bei geschachtelter Klasse Java Basics - Anfänger-Themen 2
M Konstruktor-Aufruf im Konstruktor, aber nicht am Anfang? Java Basics - Anfänger-Themen 4
P Array-Objekte-Aufruf Java Basics - Anfänger-Themen 22
Agent4nobody Programmstart durch aufruf des interpreters funktioniert nicht Java Basics - Anfänger-Themen 14
K Erste Schritte Stream-Aufruf vereinfachen Java Basics - Anfänger-Themen 3
sashady ursprüngliche Array-Werte bei erneutem Aufruf? Java Basics - Anfänger-Themen 7
M Aufruf von statischen Methoden einer anderen Klasse Java Basics - Anfänger-Themen 15
D Aufruf von mehreren Activities bringt die app zum Absturz Java Basics - Anfänger-Themen 5
L Methoden Wie Löse ich ext Methoden Aufruf Fehler? Java Basics - Anfänger-Themen 3
H Aufruf von Methoden durch Methoden Java Basics - Anfänger-Themen 3
B EJB und Arquillian - bekomme Nullpointer Exception beim Aufruf der EJB Klasse Java Basics - Anfänger-Themen 40
O Verwirrt beim Java Collection Framework aufruf! Java Basics - Anfänger-Themen 9
T Konsolenscanner startet nicht durch Aufruf von Actionlistener Java Basics - Anfänger-Themen 4
B OOP While Schleife läuft Endlos durch externen aufruf Java Basics - Anfänger-Themen 2
E Vererbung super-Methoden Aufruf Java Basics - Anfänger-Themen 3
D Interface Wieso Aufruf aller Methoden eines Interfaces? Java Basics - Anfänger-Themen 11
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 7
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 0
H Rekursiver Aufruf Java Basics - Anfänger-Themen 8
E Daten dem Super Aufruf übergeben Java Basics - Anfänger-Themen 3
D Interface Frame doppelt durch Aufruf der GUI Klasse Java Basics - Anfänger-Themen 1
Henri Aufruf von getX() und getY() aus der Super klasse Objekt() Java Basics - Anfänger-Themen 3
E Aufruf auf Objekt mit übergebenem Wert? Java Basics - Anfänger-Themen 7
D Aufruf einer statischen Variable Java Basics - Anfänger-Themen 1
T static String Variable wird nur beim ersten aufruf durch eine Funktion geändert. Java Basics - Anfänger-Themen 16
C Erste Schritte Fehler beim *.class Aufruf über cmd.exe Java Basics - Anfänger-Themen 9
M Speichern von Objekten - Verfügbarkeit bei erneutem Aufruf Java Basics - Anfänger-Themen 3
S PHP Aufruf mit mehreren Variablen Java Basics - Anfänger-Themen 2
J Klassen Reihenfolge beim Aufruf von Klassen Java Basics - Anfänger-Themen 1
O Frage zum Aufruf überladener Methoden Java Basics - Anfänger-Themen 4
G funktions Aufruf aus GUI Java Basics - Anfänger-Themen 9
W Zeitversetzter Aufruf der Methoden Java Basics - Anfänger-Themen 6
F signiertes Applet fkt. nicht bei lokalem Aufruf Java Basics - Anfänger-Themen 2
A externer repaint Aufruf Java Basics - Anfänger-Themen 9
H Aufruf einer Instanzmethode funktionert nicht. Java Basics - Anfänger-Themen 6
A Konstruktor Aufruf Java Basics - Anfänger-Themen 4
Pentalon Ein Aufruf den ich nicht verstehe Java Basics - Anfänger-Themen 11
D dynamischer Aufruf Java Basics - Anfänger-Themen 2
L Next()-Aufruf zweimal innerhalb einer While-Schleife bei ListIterator Java Basics - Anfänger-Themen 10
K Problem beim Array aufruf Java Basics - Anfänger-Themen 4
P URL für Lokalen Aufruf Java Basics - Anfänger-Themen 5
C OOP Aufruf von Methoden höherer Sichtbarkeit Java Basics - Anfänger-Themen 10
T Client-Fenster bei Aufruf unvollständig Java Basics - Anfänger-Themen 12
S Überladener Konstruktor und aufruf aus eigener Klasse Java Basics - Anfänger-Themen 2
A Aufruf von Konstruktor aus Basisklasse Java Basics - Anfänger-Themen 7
O OOP super aufruf 2 objekte? Java Basics - Anfänger-Themen 3
D Array Methoden Aufruf. Java Basics - Anfänger-Themen 14
M OOP Aufruf vieler Getter Methoden abkürzen? Java Basics - Anfänger-Themen 7
Q Aufruf einer Klasse in einem Package Java Basics - Anfänger-Themen 7
C Aufruf funktioniert nicht Java Basics - Anfänger-Themen 10
T Aufruf einer Methoden aus einer Util-Klasse mit privatem Konstruktor Java Basics - Anfänger-Themen 7
G Aufruf externer Funktionen Java Basics - Anfänger-Themen 7
J Aufruf von Funktionen in *.jar mittels Eclipse Java Basics - Anfänger-Themen 4
T Shell Script Aufruf mit Java Java Basics - Anfänger-Themen 7
M Aufruf zum Objekt erstellen aus String Java Basics - Anfänger-Themen 5
K OOP Nachteil bei direktem Aufruf von run() auf Thread-Objekten Java Basics - Anfänger-Themen 2
P OOP Aufruf eines Interfaces Java Basics - Anfänger-Themen 4
E Konstruktor-Aufruf Java Basics - Anfänger-Themen 9
C Aufruf einer Funktion Java Basics - Anfänger-Themen 3
W Multiplikation mit rekursivem Aufruf Java Basics - Anfänger-Themen 17
C exec Aufruf mit Leerzeilen im Pfad Java Basics - Anfänger-Themen 3
L Methoden aufruf Java Basics - Anfänger-Themen 3
M methoden aufruf klappt nicht Java Basics - Anfänger-Themen 6
M Frage zum Aufruf eines Applets aus einer HTML - Datei Java Basics - Anfänger-Themen 3
N Methoden aufruf Java Basics - Anfänger-Themen 7
K Methoden aufruf von einer anderen Klasse Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben