explizite Java-Referenzumsetzung

8

Wie kommt es, dass es keinen Compiler-Fehler gibt, der die Nummer zur Liste gibt? Ich dachte, die Typen müssten sich beziehen.

%Vor%     
udeleng 05.04.2011, 01:44
quelle

1 Antwort

9

Nur eine Vermutung, aber ich denke, es hat etwas damit zu tun, dass m eine Referenz für die Schnittstelle ist. Wenn Sie es in ArrayList m = new ArrayList(); ändern, wird ein Fehler bei der Kompilierung angezeigt.

  

Ich dachte, die Typen müssten sich beziehen.

Number ist eine Klasse (abstrakt) und List ist eine Schnittstelle, so dass sie durch eine andere Klasse verknüpft werden können.

so technisch könnte man haben

%Vor%

und

%Vor%

kann legal sein und wird ohne Ausnahme ausgeführt, wenn k auf einen Typ verweist, der mit Foo kompatibel ist.

Wenn Sie also über eine Schnittstelle auf ein Objekt verweisen, wird die Auflösung bis zur Laufzeit verschoben.

    
Bala R 05.04.2011, 02:20
quelle

Tags und Links