Uma de exceptions

7 respostas
marciolx

dado o código a seguir, selecione a única alternativa correta:

a - erro de compilação
b - compila, roda e lança runtime exception
c - compila, roda e imprime “uma Sub qualquer”

class Excessao extends Exception {}
class OutraExcessao extends Excessao {}
class MaisUmaExcessao extends RuntimeException {}

class Base {
	public void method() throws Excessao {}
}

class Sub extends Base {
	public void method() throws OutraExcessao, MaisUmaExcessao {}
	String toString() {
		System.out.println ("uma Sub qualquer");
	}
}

public class Teste09 {
	public static void main (String [] args) {
		Sub s = new Sub();
		System.out.println(s);
	}
}

7 Respostas

A

Meu palpite é letra c.
Está correto?

marciolx

“ana_abrantes”:
Meu palpite é letra c.
Está correto?

não, porque a classe Sub tenta sobrescrever o método toString() de Object com um modificador de acesso mais restritivo (default). A assinatura do método toString() em Object é

public String toString()

Um método sobrescrito não pode ter o acesso mais restritivo do que o método que ele está sobrescrevendo, esse é o erro apontado pelo compilador:

Teste09.java:11: toString() in Sub cannot override toString() in java.lang.Objec
t; attempting to assign weaker access privileges; was public
        String toString() {
               ^
1 error

tirando isso (se você mudar o método para public String toString()) roda e imprime a mensagem

A

Olha só … eu me preocupei com os outros detalhes e esse passou despercebido…
Legal! Preciso prestar mais atenção!

marciolx

“ana_abrantes”:
Olha só … eu me preocupei com os outros detalhes e esse passou despercebido…
Legal! Preciso prestar mais atenção!

é isso aí, o exame está cheio de “pegadinhas” :smiley:

leonardom

Mas este código possue um outro erro também, no método toString(), deve retornar uma String senão dá erro de compilação também.

marciolx

essa nem eu que escreví o código tinha percebido, valeu :wink:

P

hehehe, “mais uma de exceptions”. Também fiquei preocupado em verificar as exceptions e esqueci desse detalhe…

Criado 9 de setembro de 2003
Ultima resposta 12 de set. de 2003
Respostas 7
Participantes 4