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.
Tags und Links java