Belajar PHP OOP Part 1.14 : Constructor Overriding

Constructor Overriding

  • 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
Consturctor Overriding


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");
no error arguments constructor

Next Post Previous Post
No Comment
Add Comment
comment url