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!

PHP - Inheritance

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:

  1. Kita mendefinisikan kelas dasar Animal dengan properti $name dan metode speak().
  2. Kita membuat kelas Dog yang meng-extends Animal menggunakan kata kunci extends.
  3. Kelas Dog mengganti metode speak() dengan implementasinya sendiri.
  4. Kita membuat objek Dog baru bernama "Buddy" dan memanggil metode speak()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:

  1. Kelas Vehicle memiliki properti dengan berbagai modifikasi akses.
  2. Kelas Car meng-extends Vehicle dan menambahkan propertinya sendiri ($doors).
  3. Kelas Car dapat mengakses anggota public dan protected dari Vehicle, tetapi tidak bisa mengakses anggota private.
  4. 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:

  1. Ketika kita membuat objek Circle, PHP pertama kali memanggil constructor Shape (kelas induk).
  2. Kemudian dia memanggil constructor Circle.
  3. Kita menggunakan parent::__construct($color) untuk memastikan constructor Shape dipanggil dan properti $color diatur.
  4. Akhirnya, kita menset properti $radius khusus untuk kelas Circle.

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