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.


Log in to reply