salah satu keuntungan memakai PHP OOP adalah kemampuan untuk mengurangi duplikasi kode program dengan menerapkan prinsip inheritance, atau dikenal juga dengan istilah “pewarisan”. Duplikasi kode terjadi ketika kita menuliskan kode lebih dari sekali, tentu ini menjadi kurang efisien.

Pada inheritance, kita memiliki parent class (class induk) dengan semua property dan method-nya, dan child class (class anak atau sub class) yang dapat memakai kode dari parent class-nya. Dengan memakai inheritance, kita bisa membuat kode yang reusable yang kita tulis sekali diparent class, kemudian kita bisa memakainya berkali – kali pada child class. Dan sebauh parent class bisa diturunkan menjadi banyak  class turunan.

Untuk membuat class yang menurun dari class  lainnya, kita memakai keyword extends. berikut ini contonya:

 

Child class bisa memakai semua property dan method yang bersifat non-private. Anda masih ingat bukan, jika property private hanya bisa dipakai pada class itu sendiri? Ini memungkinkan kita menulis kode sekali pada parent class dan bisa memakainya baik di parent class atau di child class. Untuk membuat class yang menurun dari class lainnya, lihat bwah ini:

Penjelasan:

  • Baris 4 – 22 Deklarasi class Mobil{} yang merupakan parent class (class induk ) yang diturunkan nmenjadi class lainnya.
    pada class ini kita memiliki sebauah private property $merk dan tiga public method yaitu setMerk(), getMerk() dan halo() pada inheritance, seharusnya property $merk hanya bisa diakses  dari class mobil{} itu sendiri, tidak bisa dari  child class-nya. Sedangkan untuk ketiga public method setMerk(), getMerk() dan halo() bisa di akases, baik dari class Mobil{} dan class turunannya.
  • Baris 25. Deklarasi class Mobilsport{} yang menurun dari class mobil{}. Perhatiakn class Mobilsport{} tidak memiliki kode sendiri di dalamnya. class ini tidak bisa mengakses property $merk di class mobil(). Tapi bisa mengakses method setMerk(), getMerk() dan halo().
  • Baris 28-30 Membuat instance dari Mobilsport{}, karena Mobilsport{} adalah turunan dari class Mobil{}, maka class Mobilsport{} juga bisa mengakses method setMerk(), getMerk() dan halo().

    Oke untuk lebih jelasnya silahkan praktikkan sendiri tentang Membuat Turunan Class dalam OOP, semoga bermanfaat.