PHP - Pewarisan: Panduan untuk Pemula
Hai teman-teman, para ahli PHP masa depan! Hari ini, kita akan memulai perjalanan menarik ke dunia pewarisan PHP. Jangan khawatir jika Anda baru belajar pemrograman - saya akan menjadi panduan ramah Anda, menjelaskan segala sesuatunya secara langkah demi langkah. Jadi, ambil secangkir kopi (atau teh, jika itu hal Anda), dan mari kita masuk ke dalam!
Apa Itu Pewarisan?
Pewarisan seperti pohon keluarga untuk kelas-kelas di PHP. Seperti halnya Anda mungkin mewarisi mata nenek Anda atau rasa humor ayah Anda, dalam pemrograman, sebuah 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 membuat permainan video dengan jenis karakter yang berbeda. Semua karakter mungkin memiliki beberapa ciri dasar (seperti memiliki nama atau poin kesehatan), tetapi setiap jenis karakter (seperti prajurit atau ahli sihir) mungkin memiliki kemampuan unik. Pewarisan memungkinkan kita mendefinisikan ciri-ciri umum dalam kelas dasar dan kemudian membuat kelas karakter spesifik 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-extend kelas Animal
, yang berarti itu 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-extendAnimal
menggunakan kata kunciextends
. - Kelas
Dog
menimpa 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()
nya sendiri. Ini disebut penimpaan metode, dan itu adalah fitur kuat pewarisan.
Pewarisan dan Modifikator Akses
Sekarang, mari kita bicarakan bagaimana pewarisan bekerja dengan modifikator akses yang berbeda (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 modifikator akses yang berbeda. - Kelas
Car
meng-extendVehicle
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 yang didefinisikan.
Constructor dalam Pewarisan
mari kita masuk lebih mendalam 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 ia memanggil constructor
Circle
. - Kita menggunakan
parent::__construct($color)
untuk memastikan constructorShape
dipanggil dan properti$color
diatur. - Akhirnya, kita mengatur properti
$radius
khusus untuk kelasCircle
.
Ini memastikan bahwa kelas induk dan kelas anak terinisialisasi dengan benar.
Tabel Referensi Metode
mari kita lihat tabel referensi metode yang kita gunakan dalam contoh-contoh ini:
Metode | Deskripsi |
---|---|
__construct() |
Metode constructor, dipanggil saat objek diciptakan |
speak() |
Metode untuk membuat hewan 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 menciptakan hierarki kelas, mendukung penggunaan kembali dan organisasi kode. Ingat, itu seperti membangun dengan blok LEGO - Anda mulai dengan piece dasar dan terus menambahkan piece spesifik di atasnya.
Sekarang Anda teruskan perjalanan PHP Anda, Anda akan menemukan banyak cara menarik untuk menggunakan pewarisan. Tetap latihan, dan segera Anda akan dapat menciptakan program berorientasi objek yang kompleks dan efisien dengan mudah!
Pemrograman yang menyenangkan, para ahli PHP masa depan! ?????
Credits: Image by storyset