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!

PHP - Inheritance

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:

  1. Kita mendefinisikan kelas dasar Animal dengan properti $name dan metode speak().
  2. Kita membuat kelas Dog yang meng-extend Animal menggunakan kata kunci extends.
  3. Kelas Dog menimpa 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()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:

  1. Kelas Vehicle memiliki properti dengan modifikator akses yang berbeda.
  2. Kelas Car meng-extend 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 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:

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

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