namaClass {
... isi class ..
Kemudian kita masuk ke pembahasan di artikel ini, yaitu abstract class.
Abstract class merupakan sebuah class yang tidak bisa dijadikan sebuah objek. Class ini hanya merupakan kerangka dasar yang nantinya akan di implementasikan oleh class turunan ( class child ). Tidak ada perbedaan yang jauh dalam pembuatan class biasa dan abstract. Hanya saja di dalam penulisan nama class di awali dengan kata abstract dan untuk methodnya hanya memiliki nama dan parameter ( jika ada ).
Format penulisan dari abstract class :
Lebih jauh, method abstract tidak di izinkan memiliki body atau isi dalam { ... }
Lalu apa kegunaan dari abstract class ini ? Pertanyaan bagus!
Apa yang ada dalam pikiran jika mendengar kata "Hewan" ?
Secara tidak langsung kita akan berpikiran tentang suara, jumlah kaki, cara jalan, cara makan dan hal lain. Kemudian, saat mendengar kata "Barang", apa yang muncul dalam bayangan ? Nanti akan terpikir umumnya bentuk, fungsi, berat dan lain-lain sebagainya.
Hewan dan Barang merupakan bentuk yang masih abstrak atau belum jelas. Maksudnya!?
Saat kita berkata tentang Hewan, tentunya bisa kita pertanyakan lebih jauh. Hewan apa!? Ada Sapi, Kambing, Ayam, Gajah, Merpati dan lain sebagainya. Kemudian hewan hewan-hewan itu memiliki karakteristik atau cara sendiri-sendiri, baik jalan dan cara makannya. Begitu juga dengan kata "Barang".
Tanpa menggunakan abstract class, kita akan menuliskan kode untuk masing-masing class kurang lebih seperti berikut :
Kita bisa membuat jumlah method yang berbeda, tidak akan ada masalah. Namun, terkadang kita menginginkan semua class yang kita punya memiliki method yang sama. Bagaimana caranya!? Nah, caranya yaitu menggunakan implementasi dari abstract class.
Dengan menerapkan abstract class, kita akan mendapatkan warning jika kita tidak mengimplementasikan method yang telah dibuat dalam class abstract dalam class child. Caranya!? Perhatikan baris kode dibawah ini!
Di kode tersebut, ada satu buah class abstract yaitu Hewan. Tandanya!? Terdapat kata abstract sebelum nama class kan.
Tapi, akan terdapat warning error sebenarnya dalam penulisan kode tersebut.