Perbedaan Abstract dan Interface serta Kesamaannya
Pada bahasa pemrograman Java abstract class (kelas abstrak) mempunyai peran seperti perpaduan class dan interface. Seperti yang kita ketahui pada interface kita mendeklarasikan method-method tanpa harus menjelaskan isinya seperti apa. Tidak seperti dalam interface, dalam abstract kita bisa mendeklarsikan isinya metode yang kita buat seperti apa. Kita juga bisa tidak perlu membuat isi metodenya seperti apa.
Seperti halnya interface yang tidak bisa dibuat object / diinstansiasi, abstract class juga memilik sifat demikian yang pada dasarnya mengambarkan sebuah class yang belum sempurna / selesai. Karena hal demikian kelas yang meng-extend dari abstact class harus mengimplementasi method-method yang ada pada kelas parentnya (class Abstract). Pada buku [1] memberikan nama concrete class untuk class yang tidak abstact (subclass yang meng-extend parent abstract class). Mungkin apabila dirangkum seperti berikut :
kelebihan Abstract
- reusability yang tinggi, reusability didapatkan dari metod yang sekiranya sama untuk semua subclass tidak perlu didefiniskan ulang di class subclass (concrete class).
- lebih simpel, karena kita mendifiniskan langsung metod umum yang general ke semua subclass.
- dsbnya
Contoh
Code
Hasil
Penjelasan
- Kita memiliki class abstract dengan 3 variable yaitu nomorInduk, nilai, tanggalUjian. 2 metode yaitu cetakMahasiswa yang sudah terdefinisi dan cetakNilaiAkhir yang belum terdefinisi (masih abstract).
- Terdapat 2 class yang memiliki parent class Mahasiswa yaitu Remedial dan NonRemedial
- Pada class Remedial cetakNilaiAkhir didefinisikan sebagai berikut:
- Pada class NonRemedial cetakNilaiAkhir didefinisikan sebagai berikut :
- Sehingga masing-masing concrete class (subclass yang extends abstract) memiliki versinya sendiri-sendiri untuk cetakNilaiAkhir dan satu kesatuan untuk cetakMahasiswa.
Posting Komentar untuk "Konsep Abstraksi pada OOP di bahasa pemrograman Java"
Berilah komentar, saran, dan kritik dengan bijak