Você está na página 1de 11

Programação orientada

a objetos
Curso: Licenciatura em Computação
Professor: Leonardo S. Amorim
Interface
INTERFACES - Classes com comportamentos semelhantes

Interfaces são um conceito da programação orientada a objetos que tem a ver


com o comportamento esperado para uma ou um conjunto de classes.

Interfaces definem o que uma classe deve fazer e não como. Assim, interfaces
não possuem a implementação de métodos pois apenas declaram o conjunto de
métodos, o comportamento que uma ou um conjunto de classes deve ter.
Interface
Na interface, todos os métodos são portanto abstratos e públicos, já que são
apenas declarados na interface sendo obrigatoriamente implementados pelas
classes que implementam a interface.

Uma vez definida uma interface é implementada pelas classes de devem ter o
comportamento descrito na interface, ou seja, devem ter os mesmos métodos
definidos na interface. Dizemos que as classes implementam a interface pois de
fato uma classe ao implementar uma interface deve prover a implementação de
todos os métodos definidos na interface.
Interface
Assim como as classes abstratas as interfaces não podem ser instanciadas, ou
seja, não podemos criar um objeto de uma interface.

Pode-se dizer que uma interface estabelece um contrato a ser seguido por um
conjunto de classes. Este contrato pode ser entendido com a declaração do
comportamento de um conjunto de classes.

As Interfaces possuem somente a declaração dos métodos, ou seja, o tipo de


retorno, o nome do método, seus parâmetros e as exceções lançadas pelo
método. A implementação dos métodos será feita pelas classes que implementam
a interface.
Interface
Contrato de Comportamento

Assim uma classe que implementa uma interface deve obrigatoriamente


implementar todos os métodos declarados na interface. Em outras palavras, a
classe deve seguir o contrato de comportamento definido na interface. Uma
interface estabelece um contrato de comportamento para um conjunto de classes.

A principal diferença entre uma interface e uma classe abstrata é uma classe pode
herdar apenas uma classe abstrata mas pode implementar mais de uma interface.
Interface
Exemplo de Uso de Interface

Suponha que temos um sistema com um módulo de cadastros onde temos


diversos cadastros ( cadastro de clientes, cadastro de fornecedores, cadastros de
produtos, cadastro de pedidos, cadastro de pagamentos, etc. ). São muitos
cadastros e todos devem permitir incluir, alterar, excluir e consultar informações.

Neste exemplo, temos um conjunto de operações que são comuns a mais de um


ponto no sistema. Entretanto, cada cadastro possui informações, validações,
regras de negócio e campos próprios. Sendo assim, criar uma superclasse
cadastro com a implementação dos métodos incluir, alterar, excluir, etc, de forma
que a implementação da superclasse pudesse atender a todos os cadastros
seriam muito difícil pois cada cadastro possui uma forma muito particular de incluir,
alterar, excluir e consultar informações.
Interface
Por isso este problema não pode ser resolvido com o uso de herança. Neste caso
devemos apenas declarar o que deve ser feito em uma interface que declare todas
as operações comuns aos cadastros do sistema, sendo que cada cadastro deveria
ter uma classe que implemente a interface de acordo com as informações, regras
e validações específicas de cada cadastro.

A solução para este problema seria a criação de uma interface cadastro que
contenha todos os métodos esperados para um cadastro e a criação, para cada
cadastro, de uma classe que implemente a interface.
Interface
public interface cadastro {

boolean cadastrar( Entidade entidade );


int consultar();
boolean alterar( Entidade entidade );
boolean excluir( Entidade entidade );

Na interface cadastro temos as operações incluir, alterar e excluir que recebem


como parâmetro um objeto da classe Entidade. Temos também o método
consultar que não possui parâmetro e que retorna o numero de objetos
encontrados na operação de consultar.
Interface
A classe Entidade é importante porque ao incluir, alterar ou excluir precisamos
receber o objeto que será incluído, alterado ou excluído.

As classes de cadastro devem implementar a interface cadastro e


obrigatoriamente definir a implementação de todos os métodos declarados na
interface.
Interface
public class cadastroCliente implements cadastro {
private int cpf;
private String nome;
private String endereco;
private Date dataNascimento;
private Float rendaMensal;
private String email;
public boolean cadastrar( ) {
boolean ok = true;
// Implementacao da inclusao de cliente
return ok;
}
public boolean alterar( ) {
boolean ok = true;
// Implementacao da alterar de cliente
return ok;
}
public boolean excluir( ) {
boolean ok = true;
// Implementacao da excluir de cliente
return ok;
}
public int consultar() {
int total = 0;
return total;
}
}
Interface
Concluindo a interface é um mecanismo da programação orientada a objetos que
que permite reuso da declaração de métodos e estabelece um contrato que define
o comportamento de uma classe. A herança também é usada para implementar
herança múltipla, já que não é possível uma classe herdar de mais de uma
superclasse.

Você também pode gostar