O que é uma interface em Java? Guia para iniciantes na interface Java. Como usá-lo? Exemplo em anexo.
Publicados: 2020-10-31
Por que e quando usar uma Interfaces?
- Uma interface é um tipo de referência em Java.
- É semelhante à classe.
- É uma coleção de métodos abstratos.
- É usado para alcançar a abstração total.
Eu acredito que esta é a primeira pergunta que você pode esperar em Java Interview. Perguntas muito básicas, mas amplamente utilizadas em entrevistas
Não existe uma resposta perfeita para isso e existem várias maneiras de responder a essa pergunta. Pode ser o seu entrevistador à procura de uma abordagem prática destas questões? Possível.
Então vamos começar com a definição básica de uma Interface Java
Vamos passar pelo mesmo com vários exemplos.
- O que é uma interface em Java?
- O que é uma interface em java com exemplo em tempo real?
- Por que usar uma interface em java
- Design de Interface Java
- Perguntas de entrevista mais comuns na Interface
Fundamentos da interface:

- Uma
interface
é apenas um contrato, uma descrição do comportamento que uma classe de implementação terá. A classe implementadora garante que ela terá esses métodos que podem ser usados nela. É basicamente um contrato ou uma promessa que a classe tem que fazer. - E se em seus projetos todas as várias implementações compartilharem as mesmas assinaturas de método? A interface funciona melhor nesse caso.
- No estágio posterior, após a implementação do projeto principal, vamos ver se você implementou definições de interface para ~ 50 lugares, e se você alterar a interface? Você tem que fazer modificações em todos os 50 lugares em seus projetos.
- É aconselhável gastar mais algum tempo definindo a Interface durante a fase de design, em vez de alterá-la em um estágio posterior
- Uma interface consiste em variáveis
singleton
(public static final
) e métodospublic abstract
. Normalmente preferimos a interface em tempo real quando sabemos o que fazer, mas não sabemos como fazer. Uma interface não pode conter campos de instância. - As classes que implementam a Interface devem fornecer a definição de método para todos os métodos presentes.
- Uma classe pode implementar várias interfaces.
- Uma implementação de interface pode ser adicionada a qualquer classe de terceiros existente.
- Uma interface pode conter qualquer número de métodos.
- Em Java você não pode instanciar uma interface.
- Uma Interface não contém nenhum construtor.
- Uma interface não é estendida por uma classe; é implementado por uma classe.
- Uma interface pode estender várias interfaces.
Exemplos de interface:
Dica 1.
Criar interface CrunchifyDatabaseInterface.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
package crunchify . com . java . tutorials ; import java . util . Map ; import java . util . UUID ; /** * @author Crunchify.com * What Is an Interface in Java? Beginners Guide to Java Interface. */ public interface CrunchifyDatabaseInterface { // Basic Database CRUD Operations // Insert boolean insertCrunchifyRecord ( UUID id , String name , String address , String phone , String zip , String comments ) ; // Delete public boolean deleteCrunchifyRecord ( UUID id ) ; // Get public Map < String , String > getListOfAllCrunchifyRecords ( ) ; // Update boolean updateCrunchifyRecord ( UUID id , Map < String , String > records ) ; } |
Dica 2.
Implementar Interface CrunchifyDatabaseOracleImpl.java
Quando você implementa uma interface, o Eclipse mostrará a você adicionar métodos não implementados.

Basta clicar em “ Add unimplemented methods
” e sua classe IMPL deve estar pronta com Auto-generated method stub
.
Dica 3. Método Impl Real.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
package crunchify . com . java . tutorials ; import java . util . Map ; import java . util . UUID ; /** * @author Crunchify.com * What Is an Interface in Java? Beginners Guide to Java Interface. */ public class CrunchifyDatabaseOracleImpl implements CrunchifyDatabaseInterface { // Override: Indicates that a method declaration is intended to override a method declaration in a supertype. // If a method is annotated with this annotation type compilers are required to generate an error message unless at least one of the following conditions hold: // The method does override or implement a method declared in a supertype. // The method has a signature that is override-equivalent to that of any public method declared in Object. @Override public boolean insertCrunchifyRecord ( UUID id , String name , String address , String phone , String zip , String comments ) { // TODO Provide your actual implementation here based on your need specific to Oracle return false ; } // UUID(): A class that represents an immutable universally unique identifier (UUID). // A UUID represents a 128-bit value. // There exist different variants of these global identifiers. // The methods of this class are for manipulating the Leach-Salz variant, although the constructors allow the creation of any variant of UUID @Override public boolean deleteCrunchifyRecord ( UUID id ) { // TODO Provide your actual implementation here based on your need specific to Oracle return false ; } // Map(): An object that maps keys to values. A map cannot contain duplicate keys; each key can map to at most one value. // This interface takes the place of the Dictionary class, which was a totally abstract class rather than an interface. @Override public Map < String , String > getListOfAllCrunchifyRecords ( ) { // TODO Provide your actual implementation here based on your need specific to Oracle return null ; } @Override public boolean updateCrunchifyRecord ( UUID id , Map < String , String > records ) { // TODO Provide your actual implementation here based on your need specific to Oracle return false ; } } |
Dica 4.
De maneira semelhante, você pode usar a mesma interface para implementar diferentes operações específicas do banco de dados. Como, para DB2, MySQL, MongoDB, Cassandra DB, etc.

Qual é o próximo?
Em processo de escrita do Tutorial sobre a classe abstrata e, em seguida, outro tutorial que mostra claramente a diferença entre a classe abstrata e a interface.