Che cos'è un'interfaccia in Java? Guida per principianti all'interfaccia Java. Come usarlo? Esempio allegato.
Pubblicato: 2020-10-31
Perché e quando utilizzare un'Interfacce?
- Un'interfaccia è un tipo di riferimento in Java.
- È simile alla classe.
- È una raccolta di metodi astratti.
- Viene utilizzato per ottenere l'astrazione totale.
Credo che questa sia la prima domanda che potresti aspettarti in Java Interview. Domande molto semplici ma ampiamente utilizzate nelle interviste
Non esiste una risposta perfetta per questo e ci sono diversi modi per rispondere a questa domanda. Potrebbe essere il tuo intervistatore alla ricerca di un approccio pratico a queste domande? Possibile.
Quindi iniziamo con la definizione di base di un'interfaccia Java
Esamineremo lo stesso con più esempi.
- Che cos'è un'interfaccia in Java?
- Che cos'è un'interfaccia in Java con un esempio in tempo reale?
- Perché usare un'interfaccia in java
- Progettazione interfaccia Java
- Domande di colloquio più comuni su Interface
Fondamenti di interfaccia:

-
interface
è solo un contratto, una descrizione del comportamento che avrà una classe di implementazione. La classe di implementazione garantisce che disporrà di questi metodi che possono essere utilizzati su di essa. Fondamentalmente è un contratto o una promessa che la classe deve fare. - E se nei tuoi progetti tutte le varie implementazioni condividessero le stesse firme del metodo? L'interfaccia funziona meglio in questo caso.
- Nella fase successiva, dopo l'implementazione del progetto principale, vediamo se hai implementato le definizioni dell'interfaccia in circa 50 posizioni, cosa succede se cambi interfaccia? Devi apportare modifiche a tutti i 50 posti nei tuoi progetti.
- È consigliabile dedicare un po' più di tempo alla definizione dell'interfaccia durante la fase di progettazione piuttosto che modificarla in una fase successiva
- Un'interfaccia è composta da variabili
singleton
(public static final
) e metodipublic abstract
. Normalmente preferiamo l'interfaccia in tempo reale quando sappiamo cosa fare ma non sappiamo come fare. Un'interfaccia non può contenere campi di istanza. - Le classi che implementano l'Interface devono fornire la definizione del metodo per tutti i metodi presenti.
- Una Classe può implementare diverse interfacce.
- Un'implementazione dell'interfaccia può essere aggiunta a qualsiasi classe di terze parti esistente.
- Un'interfaccia può contenere un numero qualsiasi di metodi.
- In Java non è possibile creare un'istanza di un'interfaccia.
- Un'interfaccia non contiene alcun costruttore.
- Un'interfaccia non è estesa da una classe; è implementato da una classe.
- Un'interfaccia può estendere più interfacce.
Esempi di interfaccia:
Suggerimento 1.
Crea interfaccia 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 ) ; } |
Suggerimento 2.
Implementare l'interfaccia CrunchifyDatabaseOracleImpl.java
Quando implementi un'interfaccia per la prima volta, Eclipse ti mostrerà l'aggiunta di metodi non implementati.

Basta fare clic su " Add unimplemented methods
" e la tua classe IMPL dovrebbe essere pronta con lo Auto-generated method stub
.
Suggerimento 3. Metodo Impl effettivo.
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 ; } } |
Suggerimento 4.
In modo simile è possibile utilizzare la stessa interfaccia per implementare diverse operazioni specifiche del database. Come, per DB2, MySQL, MongoDB, Cassandra DB, ecc.

Qual è il prossimo?
In procinto di scrivere Tutorial su Abstract Class e poi un altro tutorial che mostra chiaramente la differenza tra Abstract Class e Interface.