No. Desde section 8.4.2 of the Java Language Spec:
dos métodos tienen la misma firma si que tienen el mismo nombre y el argumento tipos.
Dos método o constructor declaraciones M y N tienen los mismos tipos de argumentos si todas las condiciones siguientes espera:
Tienen el mismo número de formales parámetros (posiblemente cero) Se han la misma número de parámetros de tipo (posiblemente cero) sea la parámetros de tipo formal de M y vamos ser el tipo formal de parámetros de N. Después de cambiar el nombre de cada ocurrencia de un Bi en el tipo de N a Ai de los límites de correspon ding tipo variables y los tipos de argumento de M y N son lo mismo.
Así que dos métodos con el mismo nombre y argumentos, pero diferentes excepciones declaradas, que tienen la misma firma.
Además, desde the document Bozho quotes:
Definición: Dos de los componentes de una declaración método comprenden la método firma nombre de -el método y los tipos de parámetros.
No se hace mención de las excepciones allí ...
EDIT: En cuanto a sustituir un método (o la aplicación de una interfaz), desde section 8.4.8.3:
una declaración de método no debe tener un tiros cláusula que entra en conflicto (§8.4.6) con la de cualquier método que anule u oculta; de lo contrario, se produce un error de tiempo de compilación .
@ Jon Skeet ¿Por qué entonces no puedo tener public void run() lanza IOException en una clase que implementa Runnable? –
Jon tiene razón :) Pero tal vez algo para que el autor tome nota. Puede declarar que sus métodos arrojan una excepción que es menor en la excepción heirachy que la excepción declarada en el método interfaz/superclase y seguirá siendo una implementación/anulación válida del método. – Justin
@Saber que te conozco: porque implementar una interfaz o reemplazar un método tiene que hacer mucho más que solo hacer coincidir la firma. También debe evitar declarar que arrojará más excepciones marcadas que las declaradas. –