Uma interface é um tipo de referência usado para fazer cumprir um contrato com uma classe. Um contrato refere-se a uma obrigação de implementar os métodos que uma interface define.
As interfaces fornecem uma abstração entre os métodos que definem e como o usuário os implementa em uma classe. Um caso de uso prático disso é em APIs (interfaces de programação de aplicativos).
APIs permitem que seu programa se comunique com outros programas sem saber como eles são implementados. Isso é importante tanto por razões de propriedade (para a empresa que detém os direitos) quanto para facilitar o desenvolvimento de sua parte.
Vamos dar uma olhada em como usar interfaces Java.
Definindo Interfaces
Para declarar uma interface, coloque a palavra-chave interface antes do nome da interface.
interface Car {
// declarações constantes, se houver
pneus internos = 4;
// assinaturas de método
luzes internas (brilho interno);
int turn (int tyres, String direction) {
// algum código
}
}
No cabeçalho da interface, você também pode incluir seu nível de visibilidade antes da palavra-chave interface.
Os valores em uma interface são constantes. Esses valores são por padrão público, estático e final. Portanto, não há necessidade de usar essas palavras-chave ao declarar valores no corpo de uma interface.
Relacionado: Como gerenciar o escopo da variável em Java
O corpo de uma interface também pode ter padrão, abstrato, estático métodos. Esses métodos são por padrão público, portanto, não há necessidade de indicar esses modificadores de acesso ao declará-los.
Os métodos abstratos são declarados deixando de fora as chaves do corpo do método. Veja a linha 7 no código acima. Os métodos estáticos são declarados procedendo o nome do método com a palavra-chave estático Os métodos & padrão são declarados com o predefinição modificador.
Agora seria um bom momento para mencionar que você deve usar métodos declarados em uma interface em quaisquer classes que a implementem. Não fazer isso fará com que o compilador "cumpra o contrato", fornecendo um erro de compilação.
Esta propriedade particular das interfaces pode ter algumas desvantagens. Considere um caso em que um provedor de interface de programação de aplicativo (API) decide adicionar mais métodos às suas interfaces, mas vários aplicativos são baseados nas interfaces antigas. Os desenvolvedores que usam as interfaces antigas em seus programas teriam que reescrever seu código, o que não é prático.
Então, é aí que predefinição métodos entram. Eles permitem que os provedores de API adicionem mais métodos às suas interfaces, garantindo a compatibilidade binária com versões de interface mais antigas.
default int getDirection (String coordinates) {
// escreva algum código para fornecer uma implementação padrão
}
O método acima mostra como um método padrão chamado getDirection é declarado. Observe que você deve incluir uma implementação de um método padrão ao escrevê-lo.
Usando interfaces
Agora que definimos interfaces em Java, podemos passar para a forma como você pode implementá-las. Você descobrirá isso na seção abaixo.
Implementando interfaces
Para implementar uma interface, use a palavra-chave implementos usando esta sintaxe:
classe A implementa interface P {
}
Lembre-se de que você deve usar todos os métodos de interface da classe. Você pode ignorar esta regra apenas se um dos métodos for definido como predefinição na interface.
Relacionado: Uma introdução ao uso de listas vinculadas em Java
Se quiser que sua classe implemente várias interfaces, você pode separá-las usando vírgulas na declaração de cabeçalho.
Exemplo:
classe A implementa interface P, Q, R {
}
Se a classe que está implementando a interface for uma subclasse, use a sintaxe abaixo:
classe A estende B implementa C, D {
}
As interfaces permitem várias heranças em Java. Normalmente, uma classe pode estender apenas uma classe (herança única). As interfaces são a única maneira pela qual o Java pode realizar várias heranças.
As interfaces também podem estender outras interfaces, assim como uma classe pode estender outra classe. A interface filha herda os métodos da interface que estende.
Veja o exemplo abaixo:
interface A estende B {
}
Além de usar métodos padrão para modificar uma interface sem exigir que os desenvolvedores modifiquem seus programas atuais, você também pode estender as interfaces existentes.
Agora você tem algum conhecimento básico sobre interfaces Java
As interfaces em Java demonstram abstração, um dos quatro pilares da programação orientada a objetos. O polimorfismo é um desses quatro pilares. Refere-se à capacidade de um método assumir muitas formas.
Você pode implementar polimorfismo em Java por meio de sobrecarga de método ou substituição de método. O próximo item em sua lista de leitura Java deve ser como implementar essas funções.
Reduza o código que você escreve com sobrecarga e substituição de métodos.
Leia a seguir
- Programação
- Java
- Linguagens de programação
- Programação
Jerome é redator da MakeUseOf. Ele cobre artigos sobre programação e Linux. Ele também é um entusiasta da criptografia e está sempre atento à indústria de criptografia.
Assine a nossa newsletter
Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!
Clique aqui para se inscrever