- Polymorphism berasal dari bahasa yunani yang berarti banyak bentuk
- Dalam OOP, Polymorphism adalah kemampuan sebuah object berubah bentuk menjadi bentuk lain
- Polymorphism erat hubungannya dengan inheritance
<?php
class Programmer
{
public string $name;
public function __construct(string $name)
{
$this->name = $name;
}
}
class BackendProgrammer extends Programmer
{
}
class FrontendProgrammer extends Programmer
{
}
class Company
{
public Programmer $programmer;
}
<?php
require_once "data/Programmer.php";
$company = new Company();
$company->programmer = new Programmer("Eko");
var_dump($company);
$company->programmer = new BackendProgrammer("Eko");
var_dump($company);
$company->programmer = new FrontendProgrammer("Eko");
var_dump($company);
Function Arguments Polymorphism
<?php
class Programmer
{
public string $name;
public function __construct(string $name)
{
$this->name = $name;
}
}
class BackendProgrammer extends Programmer
{
}
class FrontendProgrammer extends Programmer
{
}
class Company
{
public Programmer $programmer;
}
//Function Arguments Polymorphism
function sayHelloProgrammer(Programmer $programmer)
{
echo "Hello Programmer $programmer->name" . PHP_EOL;
}
<?php
require_once "data/Programmer.php";
require_once "data/Manager.php";
$company = new Company();
$company->programmer = new Programmer("Eko");
var_dump($company);
$company->programmer = new BackendProgrammer("Eko");
var_dump($company);
$company->programmer = new FrontendProgrammer("Eko");
var_dump($company);
//Function Arguments Polymorphism
sayHelloProgrammer(new Programmer("Eko"));
sayHelloProgrammer(new BackendProgrammer("Eko"));
sayHelloProgrammer(new FrontendProgrammer("Eko"));