Ce este o interfață în Java? Ghid pentru începători pentru interfața Java. Cum să-l folosească? Exemplu atasat.
Publicat: 2020-10-31
De ce și când să folosiți o interfață?
- O interfață este un tip de referință în Java.
- Este similar cu clasa.
- Este o colecție de metode abstracte.
- Este folosit pentru a realiza abstractizarea totală.
Cred că aceasta este prima întrebare la care te-ai putea aștepta în interviul Java. Întrebări de bază, dar utilizate pe scară largă în interviuri
Nu există un răspuns perfect pentru aceasta și există o serie de moduri de a răspunde la această întrebare. Ar putea fi intervievatorul dvs. care caută o abordare practică a acestor întrebări? Posibil.
Atunci să începem cu definiția de bază a unei interfețe Java
Vom trece peste același lucru cu mai multe exemple.
- Ce este o interfață în Java?
- Ce este o interfață în Java cu exemplu în timp real?
- De ce să folosiți o interfață în java
- Proiectarea interfeței Java
- Cele mai frecvente întrebări de interviu pe Interfață
Fundamentele interfeței:

- O
interface
este doar un contract, o descriere a comportamentului pe care o va avea o clasă de implementare. Clasa de implementare se asigură că va avea aceste metode care pot fi folosite pe ea. Este practic un contract sau o promisiune pe care clasa trebuie să o facă. - Ce se întâmplă dacă în proiectele dvs. toate implementările diferite au aceleași semnături de metodă? Interfața funcționează cel mai bine în acest caz.
- În etapa ulterioară, după implementarea unui proiect major, să vedem dacă ați implementat definițiile de interfață în ~50 de locuri, ce se întâmplă dacă schimbați interfața? Trebuie să modificați toate cele 50 de locuri din proiectele dvs.
- Este recomandabil să petreceți mai mult timp definind Interfața în timpul fazei de proiectare, mai degrabă să o schimbați mai târziu
- O interfață este formată din variabile
singleton
(public static final
) și metodepublic abstract
. În mod normal, preferăm interfața în timp real când știm ce să facem, dar nu știm cum să facem. O interfață nu poate conține câmpuri de instanță. - Clasele care implementează Interfața trebuie să ofere definiția metodei pentru toate metodele prezente.
- O clasă poate implementa mai multe interfețe.
- O implementare de interfață poate fi adăugată la orice clasă existentă de terți.
- O interfață poate conține orice număr de metode.
- În Java nu puteți instanția o interfață.
- O interfață nu conține niciun constructor.
- O interfață nu este extinsă de o clasă; este implementat de o clasă.
- O interfață poate extinde mai multe interfețe.
Exemple de interfață:
Sfat 1.
Creați interfața 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 ) ; } |
Sfatul 2.
Implementați interfața CrunchifyDatabaseOracleImpl.java
Când implementați pentru prima dată o interfață, Eclipse vă va arăta să adăugați metode neimplementate.

Doar faceți clic pe „ Add unimplemented methods
” și clasa dvs. IMPL ar trebui să fie gata cu Auto-generated method stub
.
Sfat 3. Metoda Actual Impl.
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 ; } } |
Sfat 4.
În mod similar, puteți utiliza aceeași interfață pentru a implementa diferite operațiuni specifice bazei de date. Ca, pentru DB2, MySQL, MongoDB, Cassandra DB etc.

Ce urmeaza?
În curs de scriere a unui tutorial pe abstract Class și apoi un alt tutorial care arată clar diferența dintre abstract Class și interfață.