Abstract Class dan Abstract Method Pada OOP PHP
1. Pengertian Abstract Class dan Abstract Method
Abstract class adalah kelas yang dibuat sebagai model bagi kelas turunannya. Bertindak sebagai model sekaligus konsep, kelas ini punya sifat memaksa turunannya. Setiap turunannya harus mengimplementasikan abstract method kelas tersebut. Namun kelas tersebut tidak dapat di cetak langsung menjadi objek.
Abstract method adalah method yang harus diimplementasikan oleh turunannya. Setiap kelas turunan harus memiliki method yang sama (namanya) dengan abstract method pada kelas induknya (kelas abstrak). Namun, method tersebut membebaskan isi dari method yang diimplementasikan oleh turunannya.
Sebagai ilustrasi misalkan kelas abstract class Tanaman. Kelas tanaman akan dijadikan contoh atau model bagi kelas turunannya. Contoh kelas Durian dan kelas Rambutan. Sebagai abstract class, kelas tanaman ingin memaksa kelas turunannya memiliki method bernama "LihatPenjelasan".
2. Contoh Implementasi Abstract Class dan Abstract Method
Berikut ini adalah contoh abstract class Tanaman yang bertindak sebagai model bagi turunannya. Sifat yang harus diturunkan adalah method LihatPenjelasan. Method abstrak tersebut harus diimplementasikan oleh turunannya yaitu kelas Durian dan kelas Rambutan.
Pada kode program di atas adalah contoh yang benar. Abstract Class tak jauh berbeda dengan class umumnya. Hanya menambahkan keywor abstract saja. Begitu juga dengan abstract method. Namun penulisan abstract method dalam abstract class hanya tuliskan signatur nya saja. Tidak perlu sampai buka dan tutup kurung kurawal.
Berikut ini hal yang harus dilakukan pada abstract class dan abstract method yaitu:
- Tidak mencetak objek dari abstract class (kelas Tanaman).
- Mengimplementasikan abstract method pada kelas turunannya (method LihatPenjelasan).
Selain melarang, kelas abstract ternyata juga membolehkan atau membebaskan untuk isi method. Pada contoh sederhana di atas, Kelas durian mencetak penjelasan tentang tanaman bernama durian. Sedangkan kelas rambutan menjelaskan tentang rambutan. Dengan demikian maksudnya adalah isi dari method bebas.
Kebebasan selanjutnya adalah method yang dimiliki sendiri oleh turunan. Artinya kelas turunan boleh membuat method baru setelah mengimplementasikan semua abstract method. Berikut contoh kasus nya.
Pada kode program di atas, kita menambahkan method baru pada kelas Durian yaitu WarnaKulitBuah. Hal demikian diperbolehkan dalam menurunkan abstract class.
Gambar di atas adalah hasil program yang telah dijalankan. Kesimpulannya abstract class adalah kelas yang digunakan sebagai model atau percontohan yang memaksa kelas turunannya untuk mengikuti nama method abstract nya. Sedengakan isi dari method tersebut bebas. Kelas turunan dari abstract class juga masih boleh membuat method nya sendiri.