exceções nos metodos da interface e exceções nos metodos implementados

3 respostas
faeldix

Pessoal o livro da Kathy diz:

"Nao deve declarar nenhuma exceção que seja mais abrangente do que as declaradas no metodos da interface"

no entanto isso aqui compila tranquilamente:

package capitulo01;

public abstract class VariaveisLocais implements InterfaceExcessoes {

	private CoffeSize tamanho;
	int size;

	private void metodo(int size) throws Exception {
		System.out.println("Hello");
	}

	public void imprime(){
		System.out.println(size);
	}

}

interface

package capitulo01;

public abstract interface InterfaceExcessoes {

	public abstract void metodo() throws RuntimeException;

}

3 Respostas

S

Isso compila sim,

Apesar de a classe VariaveisLocais esta implementando a interface InterfaceExcessoes,
ela é uma classe abstrata, classes abstratas não tem obrigação de implementar os métodos da interface.
Podem implementar mas nao tem obrigação, quem é obrigado a implementar é a primeira classe concreta.
Além de que os métodos da interface e da classe tem assinaturas diferente.
Um tem parametro (int size) e outro não.

Att.

faeldix

olha isso:

package capitulo01;

import java.io.IOException;

public class VariaveisLocais implements InterfaceExcessoes {

	private CoffeSize tamanho;
	int size;

	public void metodo() throws Throwable {
		System.out.println("Hello");
	}

	public void imprime(){
		System.out.println(size);
	}

}
package capitulo01;

public abstract interface InterfaceExcessoes {

	public abstract void metodo() throws Exception;

}

até onde eu sei

Throwable é pai de Exception o que segundo o livro nao poderia funcionar

A

Acho q isso não compila não tem certeza? testou o arquivo com o comando java?

Criado 4 de janeiro de 2013
Ultima resposta 4 de jan. de 2013
Respostas 3
Participantes 3