Mini Curso de Java – Parte 7 1


Olá pessoal. Esta é a sétima parte do nosso mini curso de Java que terá 11 partes. Ele é voltado para iniciantes, porém é recomendado que ao estudá-lo, você já tenha pelo menos algum conhecimento em lógica de programação. Se você perdeu:
a primeira parte, leia aqui; a segunda parte, leia aqui; a terceira parte, leia aqui; a quarta parte, leia aqui; a quinta parte, leia aqui; a sexta parte, leia aqui;

Interfaces

Definição:
A sintaxe para definição de uma interface é extremamente semelhante à utilizada na definição de classes. Todos os métodos em uma interface são implicitamente abstratos (o equivalente à utilizar o modificador abstract em uma classe abstrata), e públicos.

Assim, a interface Funcionario representa um ?molde? de tudo aquilo que será acessível à outras classes em um objeto do tipo Funcionario. Desta forma, qualquer classe que implemente esta interface, será também considerada do tipo Funcionario (o efeito é semelhante ao de sub-classear uma classe chamada Funcionario por exemplo).

Interfaces não podem ter atributos (ou seja, variáveis membro), mas podem, no entanto possuir constantes definidas (variáveis que utilizam os modificadores static e final conjuntamente).

Implementação de interfaces:
Interfaces são especificações que são ou serão implementadas através de uma classe java
public interface Funcionario {
…public static final int FUNCIONARIO_GERENTE = 0;
…public static final int FUNCIONARIO_VENDEDOR = 1;
…public String getNome();
…public String getEndereco();
…public double getSalario();
}

public class TesteFuncionario implements Funcionario {
…private String nome;
…private String endereco;
…private double salario;
…public String getNome() {
……return nome;
…}
…public String getEndereco() {
……return endereco;
…}
…public double getSalario() {
……return salario;
…}
}

Uma classe pode ainda implementar mais de uma interface, neste caso, elas são colocadas lado a lado, separadas por vírgula juntamente com a cláusula implements.

Quando uma classe implementa uma interface, ela deve obrigatoriamente implementar os métodos definidos na interface. O resultado é que você pode tratar objetos do tipo Pessoa como se fossem do tipo Funcionario. E com a possibilidade de a mesma classe implementar mais de uma interface, obtem-se um resultado semelhante ao de múltiplaherança, recurso inexistente na linguagem Java que permite uma classe ter várias superclasses (ou seja, ela pode ser de vários tipos diferentes). Assim, pode-se dizer que “uma pessoa é um funcionario” e criar códigos como:

Funcionario f = new TesteFuncionario();

Utilização de herança múltiplas através de interfaces:
O exemplo de código exemplifica uma situação onde o uso de interfaces pode ser utilizado para criar uma situação semelhante à de múltipla herança:
public interface Relogio {
…public String getHoras();
}

public interface Radio {
…public void liga();
…public void desliga();
…public void trocaEstacao(int frequencia);
}

public class RadioRelogio implements Radio, Relogio {
…private String horarioAtual;
…public RadioRelogio() {
…}
…public String getHoras() {
……return horarioAtual;
…}
…public void liga() {
…// Implementacao
…}
…public void desliga() {
…// Implementacao
…}
…public void trocaEstacao(int frequencia) {
…// Implementacao
…}
}

Semana que vem estarei de volta com a parte 8 do Mini Curso de Java: Polimorfismo. Até lá! 😉

Últimos 5 artigos de Tiago Souza

Sobre Tiago Souza

De Campinas-SP, bacharel em Ciência da Computação pela Anhanguera Educacional. Técnico em Processamento de Dados pelo Cotuca é desenvolvedor Web e trabalhou dois anos com desenvolvimento PHP e Java. Atualmente trabalha como desenvolvedor .Net (C#). Utilizando metodologia SCRUM, Também desenvolve aplicativos para Android por prazer.

Deixe uma resposta