Perbedaan Antara Kelas Abstrak dan Antarmuka

Perbedaan Antara Kelas Abstrak dan Antarmuka
Perbedaan Antara Kelas Abstrak dan Antarmuka

Video: Perbedaan Antara Kelas Abstrak dan Antarmuka

Video: Perbedaan Antara Kelas Abstrak dan Antarmuka
Video: POLA KERJASAMA DAN KOLABORASI BISNIS BUAT PENGUSAHA SUKSES 2024, November
Anonim

Kelas Abstrak vs Antarmuka

Abstract class dan Interface adalah dua konstruksi berorientasi objek yang ditemukan di banyak bahasa pemrograman berorientasi objek seperti Java. Kelas abstrak dapat dianggap sebagai versi abstrak dari kelas reguler (beton), sedangkan antarmuka dapat dianggap sebagai sarana untuk mengimplementasikan kontrak. Kelas abstrak adalah kelas yang tidak dapat diinisialisasi tetapi dapat diperpanjang. Antarmuka adalah tipe yang harus diimplementasikan oleh kelas lain. Di Java, kelas Abstrak dideklarasikan 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 tersebut tidak dapat dibuat). Jadi, kelas Abstrak hanya bermakna jika bahasa pemrograman mendukung pewarisan (kemampuan untuk membuat subkelas dari perluasan kelas). Kelas abstrak biasanya mewakili konsep atau entitas abstrak dengan sebagian atau tanpa implementasi. Oleh karena itu, kelas Abstrak bertindak sebagai kelas induk dari mana kelas turunan diturunkan sehingga kelas turunan akan berbagi fitur yang tidak lengkap dari kelas induk dan fungsionalitas dapat ditambahkan untuk melengkapinya.

Kelas abstrak mungkin berisi metode Abstrak. Subkelas yang memperluas kelas abstrak dapat mengimplementasikan metode Abstrak (diwarisi) 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 menominasikan sebuah kelas sebagai Abstrak, dia mengatakan bahwa kelas tersebut tidak akan 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. Pemrogram, yang menulis kode untuk diwariskan, harus 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 mengimplementasikan antarmuka itu. Kata kunci antarmuka digunakan untuk mendefinisikan antarmuka dan kata kunci Implements digunakan untuk mengimplementasikan antarmuka oleh suatu kelas (dalam bahasa pemrograman Java). Biasanya, sebuah antarmuka hanya akan berisi tanda tangan metode dan deklarasi konstan. Setiap antarmuka yang mengimplementasikan antarmuka tertentu harus mengimplementasikan semua metode yang didefinisikan dalam antarmuka, atau harus dideklarasikan sebagai kelas abstrak. Di Jawa, tipe referensi objek dapat didefinisikan sebagai tipe antarmuka. Tetapi objek itu harus nol atau harus menampung objek kelas, yang mengimplementasikan antarmuka tertentu itu. Menggunakan kata kunci Implements di Java, Anda dapat mengimplementasikan beberapa antarmuka ke satu kelas.

Apa perbedaan antara Kelas Abstrak dan Antarmuka?

Kelas abstrak biasanya mewakili konsep abstrak atau entitas dengan sebagian atau tanpa implementasi. Di sisi lain, antarmuka adalah tipe abstrak yang digunakan untuk menentukan kontrak yang harus diimplementasikan oleh kelas. Kelas abstrak harus diwariskan (atau diperpanjang), 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 mendefinisikan konstanta. Sebuah kelas tidak dapat mewarisi lebih dari satu kelas abstrak tetapi dapat mengimplementasikan beberapa antarmuka. Antarmuka tidak dapat mengimplementasikan antarmuka lain. Namun antarmuka dapat memperluas kelas.

Direkomendasikan: