Argomenti finali nei metodi di interfaccia: qual è il punto?

In Java, è perfettamente legale definire gli argomenti final nei metodi di interfaccia e non obbedire a quello nella class di implementazione, ad esempio:

 public interface Foo { public void foo(int bar, final int baz); } public class FooImpl implements Foo { @Override public void foo(final int bar, int baz) { ... } } 

Nell’esempio precedente, bar e baz hanno le definizioni final opposte nella class VS dell’interfaccia.

Allo stesso modo, nessuna restrizione final viene applicata quando un metodo di class ne estende un altro, abstract o meno.

Mentre il final ha qualche valore pratico all’interno del corpo del metodo di class, c’è qualche punto che specifica la final per i parametri del metodo di interfaccia?