Antarmuka Kelas Vs Abstrak
Kelas dan antarmuka abstrak adalah dua konstruksi berorientasi objek yang ditemukan dalam banyak bahasa pemrograman berorientasi objek seperti Java. Kelas abstrak dapat dianggap sebagai versi abstrak dari kelas reguler (konkret), sedangkan antarmuka dapat dianggap sebagai sarana untuk mengimplementasikan kontrak. Kelas abstrak adalah kelas yang tidak dapat diinisialisasi tetapi dapat diperpanjang. Antarmuka adalah jenis yang harus diimplementasikan oleh kelas lain. Di Java, kelas abstrak dinyatakan menggunakan kata kunci abstrak, sedangkan kata kunci antarmuka digunakan untuk mendefinisikan antarmuka.
Apa itu kelas abstrak?
Biasanya, kelas abstrak, juga dikenal sebagai kelas dasar abstrak (ABC), tidak dapat dipakai (instance dari kelas itu tidak dapat dibuat). Jadi, kelas abstrak hanya bermakna jika bahasa pemrograman mendukung warisan (kemampuan untuk membuat subkelas dari memperluas kelas). Kelas abstrak biasanya mewakili konsep atau entitas abstrak dengan implementasi parsial atau tidak. Oleh karena itu, kelas abstrak bertindak sebagai kelas orang tua dari mana kelas anak diturunkan sehingga kelas anak akan berbagi fitur yang tidak lengkap dari kelas induk dan fungsionalitas dapat ditambahkan untuk menyelesaikannya.
Kelas abstrak mungkin berisi metode abstrak. Subkelas Memperluas kelas abstrak dapat mengimplementasikan metode abstrak (warisan) ini. Jika kelas anak mengimplementasikan semua metode abstrak seperti itu, itu adalah kelas konkret. Tetapi jika tidak, kelas anak juga menjadi kelas abstrak. Apa artinya semua ini adalah bahwa, ketika programmer mencalonkan kelas sebagai abstrak, dia mengatakan bahwa kelas akan tidak lengkap dan akan memiliki elemen yang perlu diselesaikan oleh subkelas yang mewarisi. Ini adalah cara yang bagus untuk membuat kontrak antara dua programmer, yang menyederhanakan tugas dalam pengembangan perangkat lunak. Programmer, yang menulis kode untuk diwariskan, perlu mengikuti definisi metode dengan tepat (tetapi tentu saja dapat memiliki implementasinya sendiri).
Apa itu antarmuka?
Antarmuka adalah tipe abstrak yang digunakan untuk menentukan kontrak yang harus diimplementasikan oleh kelas, yang menerapkan antarmuka itu. Kata kunci antarmuka digunakan untuk mendefinisikan antarmuka dan mengimplementasikan kata kunci digunakan untuk mengimplementasikan antarmuka oleh kelas (dalam bahasa pemrograman Java). Biasanya, antarmuka hanya akan berisi tanda tangan metode dan deklarasi konstan. Antarmuka apa pun yang mengimplementasikan antarmuka tertentu harus menerapkan semua metode yang ditentukan dalam antarmuka, atau harus dinyatakan sebagai kelas abstrak. Di Java, jenis referensi objek dapat didefinisikan sebagai jenis antarmuka. Tetapi objek itu harus nol atau harus memegang objek kelas, yang mengimplementasikan antarmuka tertentu. Menggunakan kata kunci implement di java, Anda dapat menerapkan beberapa antarmuka ke satu kelas.
Apa perbedaan antara kelas abstrak dan antarmuka?
Kelas abstrak biasanya mewakili konsep abstrak atau entitas dengan implementasi parsial atau tidak. Di sisi lain, antarmuka adalah tipe abstrak yang digunakan untuk menentukan kontrak yang harus diimplementasikan oleh kelas. Kelas abstrak harus diwariskan (atau diperluas), sedangkan antarmuka harus diimplementasikan. Kelas abstrak mungkin berisi metode abstrak, sedangkan antarmuka hanya boleh berisi metode abstrak. Kelas abstrak dapat berisi variabel apa pun, tetapi antarmuka hanya dapat menentukan konstanta. Kelas tidak dapat mewarisi dari lebih dari satu kelas abstrak tetapi dapat menerapkan beberapa antarmuka. Antarmuka tidak dapat menerapkan antarmuka lain. Namun antarmuka dapat memperpanjang kelas.