[RESOLVIDO] Classe interna anônima não pode extender e implementar ao mesmo tempo

3 respostas
I

Boa tarde a todos

Os livros de Java dizem que uma classe interna anônima não pode extender uma classe e nem implementar
uma interface ao mesmo tempo.

tenho um código aqui e bem, ao meu ver, ela extendeu e implementou ao mesmo tempo.
tanto é que se eu não sobrescrever os métodos da classe abstrata e da interface na classe interna anônima
o código não compila.
Deem uma olhada por favor:

package ClasseInterna;

abstract public class Teste01 extends Teste02 implements Pagavel {
	private String x = "Murilo";

	

	Teste01() {
		System.out.println("Teste01");
	}

	

}

interface Pagavel{
        String receber();
}

class Teste {
	public static void main(String[] args) {
		Teste01 t = new Teste01() {

			void fazer() {
			}

			public String receber() {
				return "Recebendo";
			}
		};
                t.nadar();
                t.receber();
	}
}

abstract class Teste02 {
	int d = 90;

	abstract void fazer();

	Teste02() {
		System.out.println("Teste02");
	}

}

Talvez eu tenha entendido mal como uma classe interna anonima extende uma classe ou implementa uma interface.
Se sim me ajudem por favor.
Obrigado

3 Respostas

pmlm

A tua classe anónima apenas extende a Teste01… e é a Teste01 (que não é anónima) que extende e implementa.

Adelar

Só complementando a resposta…
" uma classe interna anônima não pode extender uma classe e nem implementar uma interface ao mesmo tempo.". Se isso não fosse verdade o código da linha 22 poderia ser feito com um como:

Teste01 t = new Teste01() extends Teste02 implements Pagavel { ... }
Ainda se isso pudesse ser feito poderia ir contra algumas regras do Java, tal como a de não haver herança múltipla: no código acima seria possível estender da classe Teste03, por exemplo, e não da Teste02 como tinha feito anteriormente.

Att.

I

agora eu entendi pessoal, muito obrigado

Criado 7 de agosto de 2010
Ultima resposta 8 de ago. de 2010
Respostas 3
Participantes 3