Tutorial OOP PHP Bagian 6 – Inheritance

Selain encapsulation, prinsip OOP yang lain adalah Inheritance. Dengan prinsip ini, duplikasi penulisan kode program akan dapat diminimalisir. Ingatlah selalu prinsip pemrograman DRY – Don’t Repeat Yourself.

Dengan inheritance, kode yang ditulis di parent class bisa digunakan dan direuse oleh banyak child berkali-kali. Inheritance pada PHP menggunakan keyword extends. 

Tutorial OOP PHP Inheritance

Mobil Sport adalah bagian dari Mobil. Karena itu, public function yang berada di Class Mobil{} bisa digunakan juga di Class MobilSport{}.

Menambahkan Property dan Method pada Child Class

Child class boleh menambahkan property dan method sendiri, namun property dan method pada child class ini tidak bisa diakses oleh parent class.

Tutorial OOP PHP Inheritance

Protected Access Modifier

Di tutorial sebelumnya tentang Encapsulation, kita sudah membahas Public dan Private Access Modifier. Terdapat satu buah access modifier lainnya, yaitu protected. Protected access modifier digunakan supaya child class bisa mengakses private property dari parent classnya.

Tutorial OOP PHP Inheritance

Override Property dan Method

Override atau menggantikan property dan method yang dimiliki oleh parent pada child class bisa dilakukan dengan memberikan property dan method dengan nama yang sama pada Child Classnya. Proses ini sama seperti replace file.

Ketika di tampilkan di layar, kode diatas akan menampilkan Ferrari dan Tetlooot. Hal ini sesuai dengan prinsip overriding, karena Ferrari menggantikan Toyota yang berada di property $merk dari parent Class, begitu juga dengan method klakson.

Mencegah Method Overriding

Untuk mencegah method di override oleh child class, gunakan keyword final. Final berarti method tersebut tidak bisa diubah – ubah lagi. Untuk mencegah penggantian property, tidak digunakan final, tapi gunakan static. Kita akan bahas ini nanti.

Tutorial OOP PHP Inheritance

Mencegah Inheritance

Keyword final juga dapat digunakan untuk mencegah suatu Class diturunkan.

Tutorial OOP PHP Inheritance

 

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.