PHP - Pewarisan: Panduan untuk Pemula
Hai sana, para ahli PHP masa depan! Hari ini, kita akan memulai sebuah perjalanan menarik ke dunia pewarisan PHP. Jangan khawatir jika Anda baru dalam pemrograman - saya akan menjadi panduan yang ramah, menjelaskan segala sesuatu secara langkah demi langkah. Jadi, ambil secangkir kopi (atau teh, jika itu hal Anda), dan mari kita masuk ke dalam!
Apa Itu Pewarisan?
Pewarisan adalah seperti pohon keluarga untuk kelas-kelas di PHP. Seperti halnya Anda mungkin mewarisi mata nenek Anda atau rasa humor ayah Anda, dalam pemrograman, kelas dapat mewarisi properti dan metode dari kelas lain. Konsep ini membantu kita menulis kode yang lebih terorganisir dan dapat dipakai kembali.
Bayangkan hal ini: tampaknya Anda sedang membuat permainan video dengan jenis karakter yang berbeda. Semua karakter mungkin memiliki beberapa ciri umum (seperti memiliki nama atau poin kesehatan), tetapi setiap jenis karakter (seperti petarung atau ahli sihir) mungkin memiliki kemampuan unik. Pewarisan memungkinkan kita mendefinisikan ciri-ciri umum ini dalam kelas dasar dan kemudian membuat kelas karakter khusus yang mewarisi ciri-ciri ini dan menambahkan fitur unik mereka sendiri.
Contoh Pewarisan Dasar
Mari kita mulai dengan contoh sederhana untuk melihat bagaimana pewarisan bekerja di PHP.
class Animal {
public $name;
public function __construct($name) {
$this->name = $name;
}
public function speak() {
echo "The animal makes a sound.";
}
}
class Dog extends Animal {
public function speak() {
echo $this->name . " barks: Woof woof!";
}
}
$myDog = new Dog("Buddy");
$myDog->speak(); // Output: Buddy barks: Woof woof!
Dalam contoh ini, kita memiliki dua kelas: Animal
dan Dog
. Kelas Dog
meng-extends kelas Animal
, yang berarti dia mewarisi semua properti dan metode dari Animal
.
mari kitauraikan ini:
- Kita mendefinisikan kelas dasar
Animal
dengan properti$name
dan metodespeak()
. - Kita membuat kelas
Dog
yang meng-extendsAnimal
menggunakan kata kunciextends
. - Kelas
Dog
mengganti metodespeak()
dengan implementasinya sendiri. - Kita membuat objek
Dog
baru bernama "Buddy" dan memanggil metodespeak()
nya.
Kelas Dog
mewarisi properti $name
dari Animal
, tetapi menyediakan versi metode speak()
sendiri. Ini disebut penggantian metode (method overriding), dan ini adalah fitur kuat pewarisan.
Pewarisan dan Modifikasi Akses
Sekarang, mari bicarakan bagaimana pewarisan bekerja dengan berbagai modifikasi akses (public, protected, dan private).
class Vehicle {
public $brand;
protected $model;
private $serialNumber;
public function __construct($brand, $model, $serialNumber) {
$this->brand = $brand;
$this->model = $model;
$this->serialNumber = $serialNumber;
}
public function getInfo() {
return "Brand: " . $this->brand . ", Model: " . $this->model;
}
protected function getSerialNumber() {
return $this->serialNumber;
}
}
class Car extends Vehicle {
public $doors;
public function __construct($brand, $model, $serialNumber, $doors) {
parent::__construct($brand, $model, $serialNumber);
$this->doors = $doors;
}
public function getFullInfo() {
return $this->getInfo() . ", Doors: " . $this->doors . ", SN: " . $this->getSerialNumber();
}
}
$myCar = new Car("Toyota", "Corolla", "ABC123", 4);
echo $myCar->getFullInfo();
// Output: Brand: Toyota, Model: Corolla, Doors: 4, SN: ABC123
Dalam contoh ini:
- Kelas
Vehicle
memiliki properti dengan berbagai modifikasi akses. - Kelas
Car
meng-extendsVehicle
dan menambahkan propertinya sendiri ($doors
). - Kelas
Car
dapat mengakses anggota public dan protected dariVehicle
, tetapi tidak bisa mengakses anggota private. - Kita menggunakan
parent::__construct()
untuk memanggil constructor kelas induk.
Perhatikan:
- Anggota public dapat diakses dari mana saja.
- Anggota protected dapat diakses dalam kelas dan subclassnya.
- Anggota private hanya dapat diakses dalam kelas mereka didefinisikan.
Constructor dalam Pewarisan
Mari kita masuk lebih dalam tentang bagaimana constructor bekerja dalam pewarisan:
class Shape {
protected $color;
public function __construct($color) {
$this->color = $color;
echo "Shape constructor called.<br>";
}
}
class Circle extends Shape {
private $radius;
public function __construct($color, $radius) {
parent::__construct($color);
$this->radius = $radius;
echo "Circle constructor called.<br>";
}
public function getInfo() {
return "A {$this->color} circle with radius {$this->radius}";
}
}
$myCircle = new Circle("red", 5);
echo $myCircle->getInfo();
Output:
Shape constructor called.
Circle constructor called.
A red circle with radius 5
Ini apa yang terjadi:
- Ketika kita membuat objek
Circle
, PHP pertama kali memanggil constructorShape
(kelas induk). - Kemudian dia memanggil constructor
Circle
. - Kita menggunakan
parent::__construct($color)
untuk memastikan constructorShape
dipanggil dan properti$color
diatur. - Akhirnya, kita menset properti
$radius
khusus untuk kelasCircle
.
Hal ini memastikan bahwa kelas induk dan anak kelas terinisialisasi dengan benar.
Tabel Referensi Metode
Berikut adalah tabel referensi metode yang kita gunakan dalam contoh-contoh ini:
Metode | Deskripsi |
---|---|
__construct() |
Metode constructor, dipanggil saat objek dibuat |
speak() |
Metode untuk membuat binatang berbicara |
getInfo() |
Metode untuk mendapatkan informasi dasar tentang kendaraan |
getSerialNumber() |
Metode protected untuk mendapatkan nomor serial kendaraan |
getFullInfo() |
Metode untuk mendapatkan informasi lengkap tentang mobil |
Kesimpulan
Pewarisan adalah alat kuat di PHP yang memungkinkan kita untuk membuat hierarki kelas, mempromosikan penggunaan kembali dan organisasi kode. Ingat, ini seperti membangun dengan LEGO - Anda mulai dengan piece dasar dan terus menambahkan piece spesifik di atasnya.
Buatlanjutkan perjalanan PHP Anda, Anda akan menemukan banyak cara menarik untuk menggunakan pewarisan. Terus latihan, dan segera Anda akan dapat membuat program berorientasi objek kompleks dan efisien dengan mudah!
Selamat coding, para master PHP masa depan! ?????
Credits: Image by storyset