Solitamente i sovraccarichi di metodo delegano i loro parametri a sovraccarichi più dettagliati con valori predefiniti. ecco un esempio
A(x) => A(x, null);
A(x, y) => A(x, y, null);
A(x, y, z) => ...;
Cosa devo fare se voglio sovrascrivere questo metodo e apportare alcune modifiche prima di chiamare il metodo di base?
Se sovrascrivo solo il sovraccarico più dettagliato, allora mi affido ai dettagli di implementazione di genitore. se in seguito, il genitore non delegherà tutti i sovraccarichi al sovraccarico più dettagliato, allora la mia implementazione si interrompe (non fa ciò che intendevo).
override A(x, y, z) => base.A(foo(x), y, z);
Se sovrascrivo tutti i sovraccarichi, devo copiare i parametri predefiniti usati nel metodo base. la mia implementazione non si interrompe, tuttavia può essere diversa dai genitori in seguito.
override A(x) => A(x, null);
override A(x, y) => A(x, y, null);
override A(x, y, z) => base.A(foo(x), y, z);
quale è corretto?