Abstrak Kelas vs Warisan
Kelas abstrak dan warisan adalah dua konsep berorientasi objek penting yang ditemukan dalam banyak bahasa pemrograman berorientasi objek seperti Java. Kelas abstrak dapat dianggap sebagai versi abstrak dari kelas reguler (konkret), sedangkan warisan memungkinkan kelas baru untuk memperluas kelas lain. Kelas abstrak adalah kelas yang tidak dapat diinisialisasi tetapi dapat diperpanjang. Jadi, kelas abstrak hanya bermakna jika bahasa pemrograman mendukung warisan. Di Java, kelas abstrak dinyatakan menggunakan kata kunci abstrak, sedangkan kata kunci memperluas digunakan untuk mewarisi dari kelas (super).
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 warisan?
Warisan adalah konsep berorientasi objek, yang memungkinkan kelas baru untuk memperluas kelas lain. Perpanjangan kata kunci digunakan untuk mengimplementasikan konsep warisan dalam bahasa pemrograman java. Warisan pada dasarnya memberikan penggunaan kembali kode dengan memungkinkan memperluas properti dan perilaku kelas yang sudah ada oleh kelas yang baru didefinisikan. Ketika subkelas baru (atau kelas turunan) memperluas kelas super (atau kelas induk), subkelas akan mewarisi semua atribut dan metode kelas super. Subkelas dapat secara opsional mengesampingkan perilaku (menyediakan fungsionalitas baru atau diperluas untuk metode) yang diwarisi dari kelas induk. Biasanya, subkelas tidak dapat memperluas beberapa kelas super (e.G. di java). Oleh karena itu, Anda tidak dapat menggunakan Extends untuk warisan berganda. Untuk memiliki warisan berganda, Anda perlu menggunakan antarmuka.
Apa perbedaan antara kelas abstrak dan warisan?
Kelas abstrak biasanya mewakili konsep abstrak atau entitas dengan implementasi parsial atau tidak. Warisan memungkinkan kelas baru untuk memperluas kelas lain. Karena, kelas abstrak tidak dapat dipakai, Anda perlu menggunakan konsep warisan untuk memanfaatkan kelas abstrak. Kalau tidak, kelas abstrak tidak menggunakan. Kelas abstrak mungkin berisi metode abstrak dan ketika kelas diperpanjang, semua metode (abstrak dan konkret) diwariskan. Kelas yang diwaris dapat mengimplementasikan setiap atau semua metode. Jika semua metode abstrak tidak diimplementasikan, maka kelas itu juga menjadi kelas abstrak. Kelas tidak dapat mewarisi dari lebih dari satu kelas abstrak (ini bukan kualitas kelas abstrak per se, melainkan pembatasan warisan).