Tutorial Belajar OOP PHP Part 11: Cara Mengakses Constructor dan Destructor Parent Class

Posted on

Setelah membahas cara mengakses property dan method parent class, pada panduan belajar OOP PHP kali ini akan membahas cara mengakses constructor dan destructor parent class. Panduan kali ini masih berkaitan dengan efek pewarisan (inheritance) pada pemrograman objek.


Efek Inheritance pada Constructor dan Destructor

Seperti yang telah kita pelajari pada panduan Panduan Belajar OOP PHP: Pengertian Constructor dan Destructor, construktor dan destructor yaitu method khusus yang dijalankan secara otomatis ketika sebuah class di instansiasi ke pada sebuah objek, dan ketika objek tersebut dihapus.

Konsep inhertitance atau pewarisan class mempunyai efek khusus pada construktor dan destructor. Terutama construktor dan destructor dari parent class.

Mari kita jelaskan dengan menggunakan contoh:

Di kode diatas, saya merancang class komputer dengan construktor dan destructor. Class komputer kemudian diturunkan kepada class laptop, kemudian diturunkan kembali kepada class chromebook. Bagus class laptop maupun class chromebook tak mempunyai property maupun method. Class chromebook inilah yang akan kita instansiasi kedalam objek $gadget_baru.

Ketika program itu dijalankan, berikut yaitu hasil yang didapat:

Dari hasil tersebut terlihat bahwa constructor dan destructor class komputer tetap dijalankan walaupun kita merancang objek dari class chromebook.


Pengertian Overridden Constructor dan Overridden Destructor

Pada kode program diatas, saya tak merancang constructor dan destructor bagi class laptop dan class chromebook. Namun bagaimana bila ketiga class ini pun mempunyai constructor dan destructor? Mari kita coba:

Kode diatas mempunyai constructor dan destructor di masing-masing class, mari kita lihat hasilnya:

Kemana constructor dan destructor class lainnya?

Di pada PHP, ketika child class mempunyai constructor dan destructor sendiri, karenanya PHP akan melewatkan constructor dan destructor parent class, kasus ini disebut dengan Overridden Constructor dan Overridden Destructor. Karena di pada contoh kita class chromebook mempunyai constructor dan destructor, karenanya constructor dan destructor class induknya tak dijalankan.

Bagaimana bila kita ingin constructor dan destructor parent class tetap dijalankan?

Solusinya, kita mesti memanggil constructor dan destructor parent class secara manual dengan Scope Resolution Operator, yakni: parent::__construct() dan parent::__desctruct().

Berikut yaitu modifikasi kode program kita diatas:

Hasil yang kita dapat yaitu:

Dengan memanggil manual command parent::__construct() dan parent::__desctruct(), kita dapat menjalankan seluruh constructor dan destructor dari parent class.


Pada panduan belajar Object Oriented Programming (OOP) PHP kali ini, kita telah mempelajari cara kerja constructor dan destructor bila sebuah class diturunkan dari class lain (inheritance).

Constructor dan destructor parent class akan dijalankan bila child class tak mendefenisikan constructor dan destructor sendiri. Namun bila child class pun mempunyai constructor dan desctructor, karenanya kita mesti memanggil constructor dan destructor parent class secara manual.

Pada panduan OOP PHP berikutnya, kita akan mempelajari pengertian static property dan static method pada pemrograman objek.


Sumber https://www.duniailkom.com/