Hallo !
Ich habe eine Frage an euch (auch wenn diese rein theoretisch ist und eigentlich keinen konkreten Praxisnutzen hat). Wenn ich ein Interface in einer beliebigen OOP Sprache nutze (in unserem Fall Java) und dieses Interface von z.B. drei verschiedenen Klassen auf unterschiedlichste Weise implementiert wird (also die Methoden, die dort in dem Interface stehen), dann habe ich ja die Möglichkeit, einer Referenzvariable vom Typ des implementierten Interface die Objekte zuzuweisen, welche dieses Interface implementieren und dann die Methoden über die Referenzvariable aufzurufen.
Damit soll ja die Wartbarkeit, Flexibilität und ein dynamisches Austauschen der Objekte an der Referenzvariable vom Typ des Interface zur Laufzeit ermöglicht werden.
Was mich jetzt interessiert. Wie genau wird den technisch erkannt, dass ein Objekt tatsächlich dieses eine Interface implementiert hat, welches der Referenzvariable entspricht.
Wie genau wird das technisch ermöglicht? Geht das evtl. computerintern über eine zentrale Speicheradresse, die abgeglichen wird (also stimmt die Speicheradresse des Interface bzw. der Referenzvariable mit dem Interface überein, welches das beliebige Objekt implementiert hat und wenn ja, dann läuft der Code durch, ansonsten gibt es einen Compilerfehler)?
Analog gilt die Frage eben auch zu einer Referenzvariable vom Typ einer abstrakten Klasse, welcher ein Objekt zugewiesen wird, die die abstrakte Klasse erweitert.
Gruß
Kossy
Ich habe eine Frage an euch (auch wenn diese rein theoretisch ist und eigentlich keinen konkreten Praxisnutzen hat). Wenn ich ein Interface in einer beliebigen OOP Sprache nutze (in unserem Fall Java) und dieses Interface von z.B. drei verschiedenen Klassen auf unterschiedlichste Weise implementiert wird (also die Methoden, die dort in dem Interface stehen), dann habe ich ja die Möglichkeit, einer Referenzvariable vom Typ des implementierten Interface die Objekte zuzuweisen, welche dieses Interface implementieren und dann die Methoden über die Referenzvariable aufzurufen.
Damit soll ja die Wartbarkeit, Flexibilität und ein dynamisches Austauschen der Objekte an der Referenzvariable vom Typ des Interface zur Laufzeit ermöglicht werden.
Was mich jetzt interessiert. Wie genau wird den technisch erkannt, dass ein Objekt tatsächlich dieses eine Interface implementiert hat, welches der Referenzvariable entspricht.
Wie genau wird das technisch ermöglicht? Geht das evtl. computerintern über eine zentrale Speicheradresse, die abgeglichen wird (also stimmt die Speicheradresse des Interface bzw. der Referenzvariable mit dem Interface überein, welches das beliebige Objekt implementiert hat und wenn ja, dann läuft der Code durch, ansonsten gibt es einen Compilerfehler)?
Analog gilt die Frage eben auch zu einer Referenzvariable vom Typ einer abstrakten Klasse, welcher ein Objekt zugewiesen wird, die die abstrakte Klasse erweitert.
Gruß
Kossy