Kelas Abstrak 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 Inheritance 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 pewarisan. Di Java, 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 dibuat instance-nya (instance kelas itu tidak dapat dibuat). Jadi, kelas Abstrak hanya bermakna jika bahasa pemrograman mendukung pewarisan (kemampuan untuk membuat subclass dari memperluas 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 menyelesaikannya.
Kelas abstrak mungkin berisi metode Abstrak. Subclass memperluas kelas abstrak dapat mengimplementasikan metode Abstrak (diwariskan) 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 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 pemrogram, yang menyederhanakan tugas dalam pengembangan perangkat lunak. Pemrogram, yang menulis kode untuk mewarisi, perlu mengikuti definisi metode dengan tepat (tetapi tentu saja dapat memiliki implementasinya sendiri).
Apa itu Warisan?
Pewarisan adalah konsep berorientasi objek, yang memungkinkan kelas baru untuk memperluas kelas lain. Kata kunci Extends digunakan untuk mengimplementasikan konsep inheritance dalam bahasa pemrograman Java. Inheritance pada dasarnya menyediakan penggunaan ulang kode dengan mengizinkan perluasan properti dan perilaku kelas yang ada dengan kelas yang baru ditentukan. Ketika subclass baru (atau kelas turunan) memperluas kelas super (atau kelas induk) subkelas itu akan mewarisi semua atribut dan metode kelas super. Subclass secara opsional dapat menimpa perilaku (menyediakan fungsionalitas baru atau diperpanjang ke metode) yang diwarisi dari kelas induk. Biasanya, subclass A tidak dapat memperluas beberapa kelas super (misalnya di Java). Oleh karena itu, Anda tidak dapat menggunakan extends untuk multiple inheritance. Untuk memiliki banyak warisan, Anda perlu menggunakan antarmuka.
Apa perbedaan antara Kelas Abstrak dan Warisan?
Kelas abstrak biasanya mewakili konsep abstrak atau entitas dengan implementasi parsial atau tanpa implementasi. Pewarisan memungkinkan kelas baru untuk memperluas kelas lain. Karena, kelas Abstrak tidak dapat dibuat instance-nya, Anda perlu menggunakan konsep pewarisan untuk menggunakan kelas Abstrak. Jika tidak, kelas Abstrak tidak berguna. Kelas abstrak mungkin berisi metode Abstrak dan ketika kelas diperpanjang, semua metode (Abstrak dan beton) diwariskan. Kelas yang diwariskan dapat menerapkan salah satu atau semua metode. Jika semua metode Abstrak tidak diimplementasikan, maka kelas tersebut juga menjadi kelas Abstrak. Kelas tidak dapat mewarisi dari lebih dari satu kelas Abstrak (ini bukan kualitas kelas Abstrak itu sendiri, melainkan pembatasan pewarisan).