Vererbung Oberklassen und Unterklassen

AsanteXYZ

Neues Mitglied
Hallo Leute,

ich habe ein kleines Problem und ich weiß einfach nicht weiter. Vielleicht könnt ihr mir ja dabei weiterhelfen. Die Deklaration Ober x = new Unter (); macht mir eine wenig Probleme. Ich bin der Meinung, dass ich eine Ausgabe:"Hallo" bekommen sollte, da x auf die Klasse Ober zeigt.
Komischer Weise wird public String sagHallo () aus der Klasse Unter aufgerufen und ich bekomme die Ausgabe:"Huhu". Wieso?

Java:
public class KKlasse
{
   public static void main(String[] args)
   {
     Ober x = new Unter ();
     System .out . println (x. sagHallo ());//Hallo
     int z = Ober . berechne (3);
     System .out . println (z);//11
     System .out . println (z + " 7");//117
     int y = 13 / (int ) 3.7;
     System .out . println (y);//4
     int a = 3 + 5 * 2;
     switch (a)
     {
       case 16:
       System . out. println (" hier ");
       break ;
       case 12:
       System . out. println (" da ");
       break ;
       default :
       System . out. println (" dort ");//dort
     }
   }
}


class Ober
{
   public static int berechne(int x)
   {
     return x * x + 2;
   }
 
   public String sagHallo()
   {
     return " Hallo !";
   }
}

class Unter extends Ober
{
   public String sagHallo ()
   {
     return " Huhu !";
   }
}
 
Zuletzt bearbeitet von einem Moderator:
K

kneitzel

Gast
Es wird die Funktion sagHallo der Instanz aufgerufen. Die Instanz, auf die verwiesen wird, ist aber vom Typ Ober, also wird auch diese Funktion aufgerufen.

Das ist das sogenannte dynamic/late binding. Dem gegenüber steht das static/early binding, welches bei Java auf final, static und private Funktionen zutreffen würde. Beim ersten wird zur Laufzeit geschaut, welche Funktion aufgerufen wird und beim ersten wird die aufzurufende Funktion bereits zur compile-Zeit festgelegt.

Konrad
 

Joose

Top Contributor
@kneitzel haben sich bei deiner Antwort wieder zwei Fehler eingeschlichen? Die Instanz auf die verwiesen wird ist vom Typ Unter. Und 2x "beim ersten" ;)

@AsanteXYZ in Zukunft bitte Java Code in Code-Tags packen. Danke :)
[java]/* dein code */[/java]
 
K

kneitzel

Gast
Ich sollte nicht mit dem Handy posten denke ich mal. Ja natürlich. Das Objekt ist vom Typ Unter und auch wenn die Referenz vom Typ Ober ist, ist die Instanz selbst bestimmend dafür, was aufgerufen wird. Dynamic Binding eben. Und tatsächlich 2x "beim ersten".

Aber ich war nicht besoffen! (Glaubt Du mir jetzt bestimmt nicht, oder?) :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Oberklassen / Unterklassen Referenzverwendbarkeiten Java Basics - Anfänger-Themen 3
F Oberklassen und Unterklassen, Arrayzugriff Java Basics - Anfänger-Themen 4
W Vererbung Ausgabe von Objektattributen der Oberklassen Java Basics - Anfänger-Themen 4
G OOP Alle Oberklassen auflisten Java Basics - Anfänger-Themen 2
P Methoden der Unterklasse in Oberklassen-Datentyp anwenden Java Basics - Anfänger-Themen 24
I Reflection: Suche Feld + in Unterklassen Java Basics - Anfänger-Themen 7
A Klassen Vererbung und zusätzliche Unterklassen Java Basics - Anfänger-Themen 23
G Unterklassen (Klasse für Ausgabe) Java Basics - Anfänger-Themen 4
S getter, setter in abstrakter Klasse oder lieber Unterklassen Java Basics - Anfänger-Themen 4
K Vererbung Auf Methoden von Unterklassen zugreifen Java Basics - Anfänger-Themen 6
R Abfrage von Variablen in Unterklassen einer ArrayList Java Basics - Anfänger-Themen 9
S Vererbung Objekte von Ober - und Unterklassen zählen Java Basics - Anfänger-Themen 3
C Super und Unterklassen Java Basics - Anfänger-Themen 6
K Vererbung protected NUR für Unterklassen? Java Basics - Anfänger-Themen 17
L Objekte zählen mehrerer Unterklassen Java Basics - Anfänger-Themen 3
B Unterklassen von Exeptions müssen importiert werden ? Java Basics - Anfänger-Themen 3
J Klassen, Unterklassen, Vererbung - Compilerfehler Java Basics - Anfänger-Themen 11
M Unterklassen mit unterschiedlicher Zustandsanzahl Java Basics - Anfänger-Themen 15
M Unterklassen Java Basics - Anfänger-Themen 5
B Unterklassen, Packages Java Basics - Anfänger-Themen 3
G abstracte Klassen und deren Unterklassen Java Basics - Anfänger-Themen 10
T Konstruktor bei Unterklassen? Java Basics - Anfänger-Themen 4
G Klassen und Unterklassen Fragen Java Basics - Anfänger-Themen 18
E Zugriff auf unterklassen! Java Basics - Anfänger-Themen 8
E ober und Unterklassen Java Basics - Anfänger-Themen 2
E Unterklassen auf gemeinsame Oberklasse zugreifen Java Basics - Anfänger-Themen 8
J Cast zwischen zwei Unterklassen der selben Oberklasse. Java Basics - Anfänger-Themen 7
G Unterklassen finden Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben