Se cambiano i parametri (tipi, quantità) è un overload (indipendentemente che sia tra due classi in relazione o nella stessa classe). Per un override i parametri devono essere gli stessi. Nota: gli stessi tenendo presente il concetto di "override equivalent" che considera anche la "subsignature".
Ovvero, questo:
codice:class A { public void test(List<String> lista) { } } class B extends A { public void test(List lista) { } }
è perfettamente lecito. test di B è un override sebbene il parametro non sia esattamente uguale. Perché test di B è uguale alla "erasure" di test di A.


Rispondi quotando