Apa itu Antarmuka di Jawa? Panduan Pemula untuk Antarmuka Java. Bagaimana cara menggunakannya? Contoh Terlampir.
Diterbitkan: 2020-10-31
Mengapa dan kapan harus menggunakan Antarmuka?
- Antarmuka adalah tipe referensi di Jawa.
- Ini mirip dengan kelas.
- Ini adalah kumpulan metode abstrak.
- Ini digunakan untuk mencapai abstraksi total.
Saya percaya ini adalah pertanyaan pertama yang mungkin Anda harapkan dalam Java Interview. Pertanyaan yang sangat mendasar tetapi banyak digunakan dalam wawancara
Tidak ada jawaban yang sempurna untuk ini dan ada beberapa cara untuk menjawab pertanyaan ini. Mungkin pewawancara Anda mencari pendekatan praktis untuk pertanyaan ini? Mungkin.
Kemudian mari kita mulai dengan definisi dasar Antarmuka Java
Kami akan membahas hal yang sama dengan banyak contoh.
- Apa itu Antarmuka di Jawa?
- Apa itu antarmuka di java dengan contoh waktu nyata?
- Mengapa menggunakan antarmuka di java
- Desain Antarmuka Java
- Pertanyaan wawancara paling umum di Antarmuka
Dasar-dasar antarmuka:

-
interfacehanyalah sebuah kontrak, deskripsi perilaku yang akan dimiliki oleh kelas pelaksana. Kelas pelaksana memastikan, bahwa ia akan memiliki metode ini yang dapat digunakan di dalamnya. Ini pada dasarnya adalah kontrak atau janji yang harus dibuat oleh kelas. - Bagaimana jika dalam proyek Anda semua dari berbagai implementasi berbagi tanda tangan metode yang sama? Antarmuka berfungsi paling baik dalam kasus itu.
- Pada tahap selanjutnya setelah implementasi proyek besar, mari kita lihat apakah Anda telah mengimplementasikan definisi antarmuka ke ~50 tempat, bagaimana jika Anda mengubah antarmuka? Anda harus membuat modifikasi ke semua 50 tempat di proyek Anda.
- Disarankan untuk meluangkan lebih banyak waktu untuk mendefinisikan Antarmuka selama fase desain daripada mengubahnya di tahap selanjutnya
- Antarmuka terdiri dari variabel
singleton(public static final) dan metodepublic abstract. Kami biasanya lebih suka antarmuka secara real time ketika kami tahu apa yang harus dilakukan tetapi tidak tahu bagaimana melakukannya. Antarmuka tidak boleh berisi bidang instance. - Kelas yang mengimplementasikan Antarmuka harus memberikan definisi metode untuk semua metode yang ada.
- Sebuah Kelas dapat mengimplementasikan beberapa antarmuka.
- Implementasi antarmuka dapat ditambahkan ke kelas pihak ketiga yang ada.
- Antarmuka dapat berisi sejumlah metode.
- Di Java Anda tidak dapat membuat instance antarmuka.
- Antarmuka tidak mengandung konstruktor apa pun.
- Antarmuka tidak diperpanjang oleh kelas; itu diimplementasikan oleh sebuah kelas.
- Sebuah antarmuka dapat memperluas beberapa antarmuka.
Contoh Antarmuka:
Tip 1.
Buat Antarmuka 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 ) ; } |
Tip 2.
Implementasikan Antarmuka CrunchifyDatabaseOracleImpl.java
Saat Anda pertama kali mengimplementasikan antarmuka, Eclipse akan menunjukkan kepada Anda menambahkan metode yang tidak diimplementasikan.

Cukup klik “ Add unimplemented methods ” dan kelas IMPL Anda akan siap dengan Auto-generated method stub .
Tip 3. Metode Impl Aktual.
|
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 ; } } |
Tip 4.
Cara serupa Anda dapat menggunakan Antarmuka yang sama untuk mengimplementasikan operasi spesifik Basis Data yang berbeda. Seperti, untuk DB2, MySQL, MongoDB, Cassandra DB, dll.

Apa berikutnya?
Dalam proses penulisan Tutorial tentang Kelas Abstrak dan kemudian tutorial lain yang dengan jelas menunjukkan Perbedaan antara Kelas Abstrak dan Antarmuka.
