Dúvida Generics

1 resposta
M
Olá colegas, alguém podem me ajudar a entender a linha:
interface Carnivoro<E extends Animal> extends Faminto<E> {
Código completo:
interface Faminto<E> {

}

interface Carnivoro<E extends Animal> extends Faminto<E> {
	public abstract void devorar();
}

interface Herbivoro<E extends Planta> extends Faminto<E> {

}

abstract class Animal {

}

abstract class Planta{

}

class Leao extends Animal implements Carnivoro<Leao> {
		public void devorar(){
			System.out.println("Leão devorando...");
		}
}

public class TesteAnimais{
	public static void main(String[] args) {
		new Leao().devorar();

	}
}

Agradeço desde já! :grin:

1 Resposta

J

Você pode começar analisando pela definição da classe:

Você tem uma classe Leao, que é filha de Animal e que implementa um Carnivoro do tipo Leao.

A interface Carnivoro, por sua vez, só pode ser aplicada para quem for filho de Animal (vide: interface Carnivoro), por isso o Leao é filho de Animal. E todo Animal que implementar Carnivoro também terá o comportamento de Faminto para este mesmo animal (vide interface Carnivoro extends Faminto).

Criado 27 de fevereiro de 2008
Ultima resposta 28 de fev. de 2008
Respostas 1
Participantes 2