Halo teman-teman semuanya, setelah mempelajari property dan method dalam OOP PHP, pada artikel kali ini kita akan membahas dua konsep lanjutan yang sangat penting dalam pemrograman berorientasi objek, yaitu Inheritance (Pewarisan) dan Interface.
Apa Itu Inheritance?
Inheritance atau pewarisan adalah konsep di mana sebuah class (disebut child class) dapat mewarisi property dan method dari class lain (disebut parent class).
Dengan menggunakan inheritance, kita dapat menghindari duplikasi kode dan membuat struktur program yang lebih rapi dan terorganisir.
Contoh:
<?php
class Kendaraan {
public $merk;
public function nyalakanMesin() {
echo "Mesin dinyalakan<br>";
}
}
class Mobil extends Kendaraan {
public function klakson() {
echo "Klakson dibunyikan<br>";
}
}
$mobil1 = new Mobil();
$mobil1->merk = "Toyota";
echo "Merk: $mobil1->merk<br>";
$mobil1->nyalakanMesin();
$mobil1->klakson();
?>
Pada contoh di atas, class Mobil
mewarisi property $merk
dan method nyalakanMesin()
dari class Kendaraan
.
Overriding Method
Child class dapat mengubah perilaku (override) method yang diwarisi dari parent class dengan mendefinisikan ulang method tersebut.
<?php
class Kendaraan {
public function nyalakanMesin() {
echo "Mesin kendaraan dinyalakan<br>";
}
}
class Motor extends Kendaraan {
public function nyalakanMesin() {
echo "Mesin motor dinyalakan dengan starter<br>";
}
}
$motor = new Motor();
$motor->nyalakanMesin(); // Memanggil versi dari class Motor
?>
Apa Itu Interface?
Interface adalah kontrak atau kerangka kerja yang mendefinisikan method apa saja yang harus diimplementasikan oleh class yang menggunakannya. Interface tidak memiliki isi atau implementasi kode di dalam method-nya.
Interface berguna ketika kita ingin memaksa class-class tertentu untuk memiliki struktur method yang sama, meskipun berasal dari hierarki class yang berbeda.
Contoh:
<?php
interface KendaraanInterface {
public function nyalakanMesin();
public function matikanMesin();
}
class Mobil implements KendaraanInterface {
public function nyalakanMesin() {
echo "Mobil dinyalakan<br>";
}
public function matikanMesin() {
echo "Mobil dimatikan<br>";
}
}
$mobil = new Mobil();
$mobil->nyalakanMesin();
$mobil->matikanMesin();
?>
Pada contoh di atas, class Mobil
mengimplementasikan interface KendaraanInterface
, sehingga wajib menyediakan implementasi dari semua method yang didefinisikan dalam interface tersebut.
Perbedaan Inheritance dan Interface
Inheritance (Pewarisan) |
Interface |
Mewarisi property & method |
Hanya mendefinisikan method (tanpa isi) |
Gunakan extends |
Gunakan implements |
Bisa langsung digunakan |
Harus diimplementasikan semua method-nya |
Hanya satu parent class |
Bisa mengimplementasikan banyak interface |
Kesimpulan
Inheritance dan interface adalah fitur penting dalam OOP yang memungkinkan kita membangun kode yang lebih terstruktur dan fleksibel.
Inheritance memungkinkan class untuk mewarisi perilaku dari class lain, sedangkan interface mendefinisikan kontrak yang harus dipenuhi oleh class yang mengimplementasikannya.
Terima Kasih