- Karena constructor sama seperti function, maka constructor-pun bisa kita deklarasikan ulang di class child nya
- Sebenarnya di PHP, kita bisa meng-override function dengan arguments yang berbeda, namun sangat tidak disarankan
- Jika kita melakukan override function dengan arguments berbeda, maka PHP akan menampilkan WARNING
- Namun berbeda dengan constructor overriding, kita boleh meng-override dengan mengubah arguments nya, namun di rekomendasikan untuk memanggil parent constructor
Mengubah Langsung argument nya di Method
class Manager
{
var string $name;
function sayHello(string $name): void
{
echo "Hi $name, my name is Manager $this->name" . PHP_EOL;
}
}
class VicePresident extends Manager
{
function sayHello(): void //Arguments di remove
{
echo "Hi , my name is VP $this->name" . PHP_EOL;
}
}
<?php
require_once "data/Manager.php";
$manager = new Manager();
$manager->name ="Budi";
$manager->sayHello("Joko");
$vp= new VicePresident();
$vp->name="Eko";
$vp->sayHello(); //Arguments di remove
Constructor Overriding
<?php
class Manager
{
var string $name;
var string $title;
public function __construct(string $name = "", string $title = "Manager")
{
$this->name = $name;
$this->title = $title;
}
function sayHello(string $name): void
{
echo "Hi $name, my name is Manager $this->name" . PHP_EOL;
}
}
class VicePresident extends Manager
{
public function __construct(string $name = "")
{
//Tidak wajib tapi direkomendasikan
parent::__construct($name, "VP");
}
function sayHello(string $name): void
{
echo "Hi $name, my name is VP $this->name" . PHP_EOL;
}
}
<?php
require_once "data/Manager.php";
$manager = new Manager();
$manager->name ="Budi";
$manager->sayHello("Joko");
$vp= new VicePresident();
$vp->name="Eko";
$vp->sayHello("Joko");