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 lainnya. Kelas abstrak adalah kelas yang tidak dapat diinisialisasi tetapi dapat diperluas. Jadi, kelas abstrak hanya bermakna untuk dimiliki jika bahasa pemrograman mendukung warisan. Di Jawa, kelas abstrak dideklarasikan menggunakan kata kunci abstrak, sedangkan kata kunci Extends digunakan untuk mewarisi dari kelas (super).
Apa itu Kelas Abstrak?
Biasanya, kelas Abstrak, juga dikenal sebagai Kelas Dasar Abstrak (ABC), tidak dapat dipakai (contoh dari kelas itu tidak dapat dibuat). Jadi, kelas abstrak hanya bermakna untuk dimiliki jika bahasa pemrograman mendukung pewarisan (kemampuan untuk membuat subclass dari perluasan kelas). Kelas abstrak biasanya mewakili konsep atau entitas abstrak dengan implementasi parsial atau tanpa implementasi. Oleh karena itu, kelas abstrak bertindak sebagai kelas induk dari mana kelas anak diturunkan sehingga kelas anak akan berbagi fitur yang tidak lengkap dari kelas induk dan fungsionalitas dapat ditambahkan untuk melengkapi mereka.
Kelas abstrak dapat berisi metode abstrak. Subkelas yang memperluas kelas abstrak dapat mengimplementasikan metode-metode abstrak (yang diwarisi) ini. Jika kelas anak mengimplementasikan semua metode abstrak tersebut, itu adalah kelas yang konkret. Tetapi jika tidak, kelas anak juga menjadi kelas abstrak. Apa artinya semua ini adalah bahwa, ketika programmer mencalonkan sebuah kelas sebagai Abstrak, ia mengatakan bahwa kelas tersebut tidak lengkap dan akan memiliki elemen yang perlu diselesaikan oleh subclass 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 diwarisi, harus mengikuti definisi metode dengan tepat (tapi tentu saja dapat memiliki implementasinya sendiri).
Apa itu Warisan??
Warisan adalah konsep berorientasi objek, yang memungkinkan kelas baru untuk memperluas kelas lainnya. Memperluas kata kunci digunakan untuk mengimplementasikan konsep pewarisan dalam bahasa pemrograman Java. Inheritance pada dasarnya menyediakan penggunaan kembali kode dengan membolehkan perluasan properti dan perilaku kelas yang ada oleh kelas yang baru didefinisikan. Ketika subclass baru (atau kelas turunan) memperluas kelas super (atau kelas induk) bahwa subclass akan mewarisi semua atribut dan metode kelas super. Subclass secara opsional dapat mengesampingkan perilaku (menyediakan fungsionalitas baru atau diperluas untuk metode) yang diwarisi dari kelas induk. Biasanya, subkelas tidak dapat memperluas beberapa kelas super (mis. Di Jawa). Oleh karena itu, Anda tidak dapat menggunakan ekstensi untuk banyak warisan. Agar memiliki banyak pewarisan, Anda harus menggunakan antarmuka.
Apa perbedaan antara Kelas Abstrak dan Warisan?
Kelas abstrak biasanya mewakili konsep abstrak atau entitas dengan implementasi parsial atau tanpa implementasi. Warisan memungkinkan kelas baru untuk memperluas kelas lainnya. Karena, kelas abstrak tidak dapat dipakai, Anda perlu menggunakan konsep pewarisan untuk menggunakan kelas abstrak. Kalau tidak, kelas abstrak tidak ada gunanya. Kelas abstrak dapat berisi metode abstrak dan ketika kelas diperluas, semua metode (abstrak dan beton) diwariskan. Kelas yang diwariskan dapat menerapkan salah satu atau semua metode. Jika semua metode abstrak tidak diterapkan, 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).