Recentemente ho scoperto che posso avere due interfacce, una contenente un metodo con la stessa firma di un metodo nell'altra interfaccia. E posso avere un'interfaccia o una classe che implementa entrambe le interfacce citate in precedenza. Quindi la classe / interfaccia discendente implementa implicitamente due metodi diversi come un metodo.
Perché è permesso in Java?
Riesco a vedere numerosi problemi derivanti da questo. Eclipse, ad esempio, può solo scoprire le implementazioni per un metodo di interfaccia, ma per il secondo non mostra alcuna implementazione. Inoltre, credo che ci sarebbero problemi con il refactoring automatico, come quando si vuole cambiare la firma del metodo in una delle interfacce e l'IDE non sarà in grado di cambiare correttamente quella firma in tutte le implementazioni (poiché implementano due interfacce diverse e l'IDE non può dire a quale metodo di interfaccia si riferisce l'implementazione.)
Perché non fare solo un errore del compilatore come "i nomi dei metodi delle interfacce si scontra" o qualcosa del genere?