02 março 2009

SCJP - 02 - Interfaces

Mais uma vez, tem coisas que a gente ja faz no automático. Estamos acostumados a só definir alguns métodos numa interface, e implementá-los numa classe qualquer, algo do tipo:

interface Testavel {
    public void testar();
}

class Rodavel implements Testavel{
    public void testar() {
        System.out.println("teste");
    }
}

Dos posts anteriores, nós sabemos que:

  • Classes não podem estender mais de uma classe pai.
  • Classes podem implementar mais de uma interface.

Mas acontece exatamente o contrário com as interfaces. Interfaces podem sim extender mais de uma interface pai, mas não podem implementar qualquer interface.

interface Inflavel {
    public void encher();
}

interface Brinquedo{
    public void jogar();
}

interface Bola extends Inflavel,Brinquedo{
    public void estourar();
}

Assim, a primeira classe não-abstrata que implementar a interface Bola, deverá implementar os métodos definidos em Bola, e nas interfaces que ela estende: Inflável e Brinquedo. No mais, todas as regras referentes a sobrecarga, sobrescrita e herança continuam funcionando.


Creative Commons License
Esta obra está licenciada sob uma Licença Creative Commons.
Comentários
0 Comentários

0 comments:

Postar um comentário

Regras são chatas, mas...

- Seu comentário precisa ter relação com o assunto do post;
- Em hipótese alguma faça propaganda de outros blogs ou sites;
- Não inclua links desnecessários no conteúdo do seu comentário;
- Se quiser deixar sua URL, comente usando a opção OpenID;
- CAIXA ALTA, miguxês ou erros de ortografia não serão tolerados;
- Ofensas pessoais, ameaças e xingamentos não são permitidos;