1. INTERFACES
Linguagem de Programação II
Ciência da Computação
Prof.ª M.ª Eng.ª Elaine Cecília Gatto
2. INTERFACES
• Utilidade: definir o que uma classe deve fazer mas
não como ela o fará;
• Definição: um conjunto de métodos que será
implementado por uma classe;
• Semelhantes às classes abstratas;
• Uma interface não fornece implementação dos
métodos que define
3. ASPECTOS BÁSICOS
• Uma interface apenas especifica o que deve ser
feito, mas não como;
• Uma interface é uma estrutura que descreve a
funcionalidade sem especificar uma
implementação;
5. ASPECTOS BÁSICOS
• Declarar as interfaces preferencialmente como
public para que um número ainda mais de classes
possa implementá-la
• Métodos da classe interface: são como os métodos
abstratos, possuem apenas a assintura e o tipo de
retorno
6. ASPECTOS BÁSICOS
• Nenhum método da interface deve ser
implementado;
• Cada classe que implementa a interface deve fazer
a sua propria implementação dos métodos;
• Os métodos da interface são publicos
implicitamente
7. IMPLEMENTANDO UMA
INTERFACE
• Sintaxe: classe implementando uma interface
Class nome_da_classe implements
interface{ }
• Ou ainda
Class nome_da_classe extends
superclasse implements interface{ }
EXEMPLO 1
8. IMPLEMENTANDO UMA
INTERFACE
• É permitido que uma classe que implemente uma
interface defina seus próprios membros e
métodos;
• Ela não fica limitada a fornecer apenas esses
métodos, mas é obrigada a implementá-los
também
• EXEMPLO 2
9. IMPLEMENTANDO UMA
INTERFACE
• Uma ou mais classes diferentes podem
implementar a mesma interface
• Essas classes podem ser usadas da mesma
maneira, inclusive
• EXEMPLO 3
10. REFERENCIAS DE
INTERFACES
• Uma declaração de interface também cria um novo
tipo de referência;
• Quando uma classe implementa uma interface,
está adicionando o tipo da interface ao seu tipo;
• Uma instância de uma classe que implementa uma
interface também é uma instância desse tipo de
interface
11. REFERENCIAS DE
INTERFACES
• Uma variável de referencia de um tipo de interface
pode ser criada;
• Variável de referencia de interface:
• pode referenciar qualquer objeto que implemente a
interface;
• Pode referenciar qualquer instância de seu tipo;
• Não pode ser usada para acessar nenhuma outra
variável ou método fornecdio por uma classe
implementadora
EXEMPLO 4
12. REFERENCIAS DE
INTERFACES
• Funcionalidades relacionandas podem ser
acessadas por intermedio de uma interface comum
• A implementação pode mudar sem afetar o código
que usa a interface
• Códigos adaptáveis facilmente
13. IMPLEMENTANDO VÁRIAS
INTERFACES
• Uma classe pode implementar mais de uma
interface
• A classe deve implementar todos os métodos de
todas as interfaces
• Esse recurso permite que a classe forneça várias
funcionalidades bem definidas sem ter que usar
herança de classes
• EXEMPLO 5
14. USANDO CONSTANTES
• Interfaces podem fazer uso de CONSTANTES e não
de variáveis de instâncias (atributos da classe)
• Para isso usa-se public, static e final e todas elas
devem ser inicializadas;
• USO: um programa grande usa várias classes
separadas, é preciso então haver uma maneira
conveniente de disponibilizar essas constantes
para cada classe
15. USANDO CONSTANTES
• Para definir um conjunto de constantes
compartilhadas, é necessário criar uma interface
apenas com as constantes, sem os métodos;
• As classes que precisarem de acesso às constantes
deverão apenas implementar esta interface
• EXEMPLO 6
16. HERANÇA E INTERFACES
• Uma interface pode herdar outra com o uso da
palavra-chave extends.
• Quando uma classe implementa uma interface que
herda outra interface, deve fornecer implementações
de todos os métodos definidos dentro da cadeia de
herança das interfaces.
• Toda e qualquer classe que implemente uma interface
deve implementar todos os métodos definidos por ela,
inclusive os herdados de outras interfaces
• EXEMPLO 7
17. INTERFACES ANINHADAS
• Uma interface pode ser declarada membro de
outra interface ou de uma classe.
• Uma interface aninhada em uma classe pode usar
qualquer modificador de acesso e é implicitamente
pública;
• EXEMPLO 8