JAVA adalah bahasa pemrograman berorientasi objek yang menggunakan berbagai fitur utama pemrograman berorientasi objek. Abstraksi adalah salah satu fitur yang memungkinkan pengguna menyembunyikan kompleksitas implementasi dan menyediakan teknik implementasi yang lebih sederhana. Di Java, hal ini dicapai dengan menggunakan antarmuka atau kelas abstrak.
Kelas abstrak dan Antarmuka terkait dengan abstraksi tetapi tidak dapat digunakan secara bergantian; oleh karena itu, penting untuk mencatat kapan harus menggunakan antarmuka dan kapan menggunakan kelas abstrak dan memilih opsi yang tepat.
Kelas Abstrak vs Iantarmuka
Perbedaan utama antara kelas abstrak dan antarmuka adalah antarmuka fungsional hanya terdiri dari satu metode abstrak selain metode statis dan default. Fitur ini dapat membatasi jumlah metode abstrak yang akan dideklarasikan, sedangkan tidak mungkin membatasi jumlah metode abstrak yang dideklarasikan dalam kelas abstrak.
Kelas abstrak hanyalah kelas yang dideklarasikan menggunakan kata kunci abstrak. Ini memaksa subkelas untuk mengimplementasikan semua metode yang dideklarasikan dan memungkinkan kita mengizinkan tanda tangan metode ditulis menggunakan kata kunci abstract. Asumsikan jika suatu kelas memiliki metode abstrak, kelas tersebut juga harus abstrak.
Antarmuka berfungsi sebagai cetak biru untuk implementasi kelas. Tidak ada metode konkrit dalam antarmuka, dan semua metode bersifat abstrak. Sebuah antarmuka tidak dapat dibuat instance-nya, namun sebaliknya, kelas yang mengimplementasikan antarmuka dapat dibuat instance-nya. Variabel instan tidak pernah digunakan dalam antarmuka. Namun, variabel final statis publik dapat digunakan.
Tabel Perbandingan Antara Abstrak Classi adan akuantarmuka
parameter | Kelas Abstrak | Antarmuka |
Kecepatan | Cepat | Lambat |
Jenis kelas | Dapat memiliki metode abstrak publik dan dilindungi. | Hanya dapat memiliki metode abstrak publik |
Mendefinisikan Bidang | Memungkinkan mendefinisikan konstanta dan bidang. | Tidak ada bidang yang dapat ditentukan. |
penggunaan | Untuk mencegah menjadi mandiri. | Fungsionalitas yang ditingkatkan di masa mendatang. |
Structure | Memiliki metode abstrak dan konkret, yaitu metode tanpa kode. | Hanya memiliki metode abstrak. |
Batas Ekstensi | Saat ini, itu hanya memperluas satu kelas atau satu kelas abstrak. Kelas reguler (atau beton) lainnya dapat diperpanjang. | Sejumlah antarmuka dapat diperpanjang. Itu hanya dapat memperluas antarmuka. |
Implementasi Default | Dapat memiliki implementasi metode default. | Tidak dapat memiliki implementasi sama sekali karena menyediakan abstraksi. |
Kata Kunci Digunakan | kelas abstrak menggunakan kata kunci 'meluas'. | Antarmuka diimplementasikan oleh kata kunci 'implements. |
Beberapa Warisan | Dapat memperluas jenis lain dan mengimplementasikan beberapa antarmuka Java. | Hanya antarmuka Java lain yang dapat diperluas oleh antarmuka ini. |
Jenis Variabel | variabel final, non-final, statis, dan non-statis digunakan. | Memiliki variabel final dan statis. |
Apa is Abstrak Classi?
Kata kunci 'abstrak' digunakan untuk mendeklarasikan kelas abstrak. Setidaknya satu metode abstrak harus ada di kelas abstrak. Ini mungkin memiliki berbagai metode konkrit. Anda dapat menggunakan kelas abstrak untuk menghasilkan cetak biru kelas konkret. Namun, metode abstrak harus diimplementasikan oleh kelas pewaris. Tidak mungkin membuat instance kelas abstrak.
Keuntungan menggunakan kelas abstrak adalah:
- Saat mencoba memanfaatkan konsep pewarisan dalam kode, dengan memberikan metode kelas basis umum yang ditimpa oleh subkelas.
- Jika seseorang perlu memiliki metode non-final atau non-statis untuk menyesuaikan status suatu objek.
- Membantu dalam penggunaan kembali kode.
- Memenuhi persyaratan yang ditentukan dan memberikan detail implementasi fraksional.
Abstraksi dalam bahasa pemrograman apa pun mengacu pada penyembunyian elemen yang tidak penting dari pengguna sehingga mereka dapat fokus pada elemen penting, sehingga meningkatkan efisiensi dan menurunkan kompleksitas.
Kelas abstrak menangkap karakteristik umum dari subkelas dan mungkin mengandung atau tidak mengandung metode abstrak. Itu tidak dapat dibuat instance-nya tetapi hanya dapat digunakan sebagai superclass oleh subclass-nya.
sintaks:
nama kelas abstrak {
//Pernyataan
}
Apa is sayaantarmuka?
Salah satu konsep dasar Java adalah antarmuka. Antarmuka Java adalah komponen mendasar dari bahasa pemrograman Java, dan digunakan secara luas dalam JDK dan pola desain Java. Mayoritas kerangka kerja sangat bergantung pada antarmuka Java. Itu dibuat menggunakan kata kunci 'antarmuka'.
Manfaat menggunakan antarmuka adalah:
- Antarmuka digunakan untuk mencapai abstraksi absolut.
- Karena semua properti antarmuka bersifat publik, statis, dan final secara default, kita tidak perlu menambahkan pengubah akses, tetapi jika kita menambahkannya, kompiler tidak akan mengeluh.
- Dirancang untuk mendukung resolusi metode dinamis saat dijalankan.
- Akan sangat membantu ketika suatu masalah perlu diselesaikan menggunakan banyak pewarisan dan terdiri dari hierarki kelas yang berbeda.
Itu dapat memiliki metode dan variabel, sama seperti sebuah kelas. Namun, metode yang dideklarasikan dalam antarmuka bersifat abstrak secara default.
sintaks:
nama antarmuka{
//metode
}
Perbedaan Utamas Antara Kelas Abstrak and Antarmuka Di Jawa
- Perbedaan paling penting antara kelas abstrak dan antarmuka adalah karena antarmuka tidak memiliki variabel instan, ia tidak dapat memiliki status yang dapat diubah oleh metode non-abstrak.
- Konstruktor dapat ditentukan dalam kelas abstrak tetapi tidak dalam antarmuka di Java, perbedaan semantik lainnya antara antarmuka dengan metode default dan kelas abstrak.
- Dalam kasus kelas Abstrak, seseorang dapat memanfaatkan implementasi default, sedangkan dalam antarmuka, menemukan semua pelaksana dan implementasinya adalah sebuah mimpi buruk.
- Di mana kelas abstrak mendefinisikan identitas kelas, antarmuka membantu menentukan kemampuan periferal.
- Kelas abstrak dapat mewarisi satu kelas dan beberapa antarmuka, sedangkan antarmuka hanya dapat mewarisi beberapa antarmuka, bukan kelas.
- Konstruktor dan destruktor dapat didefinisikan dalam kelas abstrak tetapi tidak dalam antarmuka.
- Perbedaan lain antara kelas abstrak dan antarmuka adalah bahwa kelas abstrak dapat diperluas dengan kata kunci 'extends'. Kata kunci 'implements' dapat digunakan untuk mengimplementasikan kelas interface.
Kesimpulan
Di Java, perbedaan antara kelas abstrak dan antarmuka adalah kelas abstrak mengimplementasikan abstraksi, sedangkan antarmuka mengimplementasikan abstraksi dan pewarisan ganda.
Dua pendekatan untuk mendesain kelas yang berisi metode tertentu, meskipun tidak semua, untuk dieksekusi oleh kelas adalah kelas abstrak dan antarmuka. Keduanya berbeda secara statis dan dicapai dengan cara yang terpisah. Namun, dalam hal penggunaan dinamis, keduanya identik.
Kelas abstrak analog dengan antarmuka dalam beberapa hal, yaitu pengguna tidak dapat membuat instance. Kedua, keduanya mungkin berisi sekumpulan metode yang dideklarasikan dan didefinisikan dengan atau tanpa implementasinya.