in "The Java ™ linguaggio di programmazione, quarta edizione" di Ken Arnold, James Gosling, David Holmes, il suo detto che:Java Interfaccia: Ereditare, di primaria importanza, e metodi Overloading
paragrafo: (4.3.2) "Analogamente, se un'interfaccia eredita più di un metodo con la stessa firma, o se una classe implementa interfacce diverse contenenti un metodo con la stessa firma, esiste solo un tale metodo. L'implementazione di questo metodo viene definita in ultima analisi la classe che implementa le interfacce e non vi è alcuna ambiguità. Se i metodi hanno la stessa firma ma tipi di ritorno diversi, uno dei tipi restituiti deve essere un sottotipo di tutti gli altri, altrimenti un si verifica un errore in fase di compilazione. L'implementazione deve definire un metodo che restituisce quel sottotipo comune ".
Qualcuno mi può dare qualche esempio di codice che giustifica i punti di cui al punto di cui sopra?
Ho provato a scrivere il codice e provare ciò che viene menzionato ma io sono sempre a tempo di compilazione errore il sub-interfaccia nasconde il metodo di interfaccia di base così può implementare solo metodo di sub-interfaccia.
Grazie in anticipo. -Arun
si può mostrare il codice? –
pubblica il tuo codice e gli errori del compilatore amico ... almeno dacci qualcosa per (a) riprodurre il problema; e (b) andare da lì. – corlettk
Tutti mi dispiace davvero, stavo provando a testare ciò che è stato menzionato nel para sopra menzionato usando j2sdk1.4.2_08 - Non mi ero accorto che il libro è stato scritto per JDK1.5 Ciò significa che se si compila lo snippet di codice di "Daniel Schneller" utilizzando JDK1.4 si otterrà un "ImplementationOfAandB.java:17: methodB() in ImplementationOfAandB non può implementare il metodoB() in InterfaceA; tentare di utilizzare il tipo di ritorno incompatibile" errore di compilazione mentre con JDK1.5 viene eseguito solo bene. – akjain