Prezados Amigos,
Sou iniciante em Java e estou aprendendo polimorfismo através do livro “Use a Cabeça Java”. Estou estudando o capitulo 8 - “Interfaces e Classes Abstratas”, nesse capitulo dá a entender que a classe pode estender diretamente e indiretamente uma classe. Bom, a minha dúvida é saber se o mesmo pode acontecer com uma Interface, se ela pode ser implementada indiretamente por uma classe.
No final do capitulo tem um exercício que confundiu um pouco minha cabeça, ele é mais ou menos assim:
interface Utilidades
{
int ligar();
}
public abstract class Eletrodomestico implements Utilidades
{
int ligar() return 0;
}
public class TV extends Eletrodomestico()
{
int ligar() return 1;
}
public class Radio extends Eletrodomestico()
{
}
class TesteUtilidades
{
public static void main (String [] args)
{
Utilidades [] i = new Utilidades[2];
i[0] = new Radio(); // pq isso funciona? como o polimorfismo se aplica nisso?
i[1] = new TV(); // pq isso funciona? como o polimorfismo se aplica nisso?
i[0].ligar();
i[1].ligar();
}
}
Por favor, me ajudem a entender essa parte. Se tiver dicas de materias falando mais do assunto e se aprofundando, deixe o link para eu consultar.