Hari 10: Inheritance — Pewarisan Class
65 min
Last updated 09 Apr 2026
Konsep Inheritance
Inheritance (pewarisan) memungkinkan sebuah class mewarisi properti dan method dari class lain. Ini mengurangi duplikasi kode dan menciptakan hierarki yang logis.
// Class induk (parent)
class Hewan {
public string $nama;
public string $jenis;
public function __construct(string $nama, string $jenis) {
$this->nama = $nama;
$this->jenis = $jenis;
}
public function info(): string {
return "{$this->nama} adalah {$this->jenis}";
}
public function bersuara(): string {
return "...";
}
}
// Class anak (child) — extends parent
class Kucing extends Hewan {
public string $warna;
public function __construct(string $nama, string $warna) {
parent::__construct($nama, "Kucing"); // panggil constructor parent
$this->warna = $warna;
}
// Override method parent
public function bersuara(): string {
return "Meow!";
}
public function info(): string {
return parent::info() . " berwarna {$this->warna}";
}
}
class Anjing extends Hewan {
public function __construct(string $nama) {
parent::__construct($nama, "Anjing");
}
public function bersuara(): string { return "Guk!"; }
}
$kucing = new Kucing("Mimi", "Oranye");
$anjing = new Anjing("Rex");
echo $kucing->info() . "\n"; // Mimi adalah Kucing berwarna Oranye
echo $kucing->bersuara() . "\n"; // Meow!
echo $anjing->bersuara() . "\n"; // Guk!
// instanceof — cek tipe objek
echo ($kucing instanceof Hewan) ? "true" : "false"; // true
💡
Notice: PHP 8.0+ mendukung constructor property promotion: public float $sisi langsung di parameter constructor.
Assignment
Buat class Bangun dengan method luas() return 0. Buat class Persegi extends Bangun dengan properti $sisi, dan override luas() untuk return $sisi². Buat class Segitiga extends Bangun dengan $alas dan $tinggi, luas() = 0.5 * alas * tinggi. Tampilkan luas persegi(5) dan segitiga(8,6).
Expected output:
25
24
PHP
index.php
Solution
Output