Ho per esempio un'interfaccia A e B. A ha un metodo (astratto) chiamato foo. B estende A.Ha senso sovrascrivere un metodo in un'interfaccia
È possibile sovrascrivere foo nell'interfaccia B anche con @Override, ma esiste una situazione in cui ciò abbia senso? Non c'è nulla da escludere, perché entrambi i metodi devono essere astratti e non avere corpo. Quindi immagino che non ci sia alcuna situazione in cui ciò abbia senso, giusto?
Quindi, perché è possibile eseguire l'override in un'interfaccia?
'addAll()' è un ottimo esempio, ma forse dovresti mostrare qual è la differenza nel contratto. – dkatzel
Sì. Questo è chiamato un tipo di ritorno covariante. Vedi https://en.wikipedia.org/wiki/Covariance_and_contravariance_%28computer_science%29#Covariant_method_return_type –
@ ErickG.Hagstrom Nel mio esempio entrambi restituiscono 'void' ma la caratteristica di tipo covariante restituisce ancora in generale :) – manouti