Jumat, 15 Juni 2012

Apa perbedaan Abstract class dan Concrete Class?


# Abstract Class :
- Mendefinisikan class yang bersifat abstrak
- Tidak dapat digunakan untuk membentuk objek
- Dapat memiliki method abstrak
- Digunakan sebagai base class untuk membentuk class konkrit (concrete class)
- Dibentuk dengan menggunakan kata kunci abstract pada saat definisi class
- Abstract class yaitu sebuah class setengah jadi (abstrak) yang memuat/memiliki method dan atrribut.
- Abstract class sebenarnya adalah sebuah class, sehingga memiliki semua sifat dari class biasa (punya konstruktor).
- Abstract class akan selalu menjadi superclass / hirarki tertinggi dari subclass-subclass-nya.
- Abstract class mempunyai setidaknya satu abstract method.
- Bila subclass method abstract tidak mengimplementasikan isi semua method maka subclass tersebut harus dideklarasikan abstract.

* Kegunaan abstract class :
- Class Abstract berisi beberapa method dan beberapa method abstract. Class Abstract berisi sebagian implementasi, dan subclass yang melengkapi implementasinya. Dengan kata lain Class Abstract memiliki beberapa kesamaan (Bagian yang diimplementasikan oleh subclass) dan memiliki perbedaan (method yang dimiliki oleh abstract class).
- Deklarasikan method abstract, jika ada satu atau lebih subclass yang diharapkan mempunyai fungsionalitas yang sama tetapi implementasi berbeda.
- Gunakan class abstract untuk mendefinisikan behavior secara umum sebagai superclass, sedangkan subclass menyediakan implementasi detail
- Jika class abstract semua method merupakan method abstract, sebaiknya class abstract tersebut diganti menjadi Interface

# Concrete Class
- Mendefinisikan class yang nyata
- Dapat membentuk atau instansiasi object
- Object hanya bisa dibuat dari non-abstract class (concrete class)
- Dapat menurunkan implementasi dari super class
- Dapat sebagai base class pada hierarchical relationship dan membutuhkan class lain untuk mewarisinya

Tidak ada komentar:

Posting Komentar