Frage Java Vererbung
-
Hallo,
wenn ich sowas hier habe und sowohl Klasse A und B haben eine Funktion funk dann wird ja in diesem Beispiel die funk() von Klasse B aufgerufen. Aber macht sowas die Sprache nicht ungemein langsamer da ja bei jedem Klassenaufruf geschaut werden muss auf was die Referenz eigentlich zeigt ? Ich mein das muss ja immer gemacht werden egal ob die Klasse geerbt hat oder nicht ? In der schnelle Sprache C gibts ja sowas nicht.
A varA = new B(); varA.funk(""); // funk von B wird aufgerufen
-
Nö, ist effizient genug implementiert.
Java ist übrigens doch eine Insel.
-
JavaKeineInsel schrieb:
Aber macht sowas die Sprache nicht ungemein langsamer da ja bei jedem Klassenaufruf geschaut werden muss auf was die Referenz eigentlich zeigt ?
Nö, für sowas gibts ne vtable. Das ist dann so als würde man in C eine Funktion über einen Funktionszeiger aufrufen.
-
Tobiking2 schrieb:
JavaKeineInsel schrieb:
Aber macht sowas die Sprache nicht ungemein langsamer da ja bei jedem Klassenaufruf geschaut werden muss auf was die Referenz eigentlich zeigt ?
Nö, für sowas gibts ne vtable. Das ist dann so als würde man in C eine Funktion über einen Funktionszeiger aufrufen.
So in etwa, nur schneller.