Polymorphism in PHP
This word is can from Greek word poly and morphism.
Poly means "many" and
morphism means property which help us to assign more than one property.
=>
Overloading Same method name with different signature, since PHP doesn't support method overloading concept
=>
Overriding When same methods defined in parents and child class with same signature i.e know as method overriding
Method Overriding
<?php
class base
{
function add($a,$b)
{
$res=$a+$b;
echo "Sum of two number = ".$res;
}
}
class child extends base
{
function add($a,$b,$c)
{
$res=$a+$b+$c;
echo "Sum of three number = ".$res;
}
}
$obj= new child();
$obj->add(1000,500);
?>
Output
Warning: Missing argument 3 for child::add(), called in
C:xampplitehtdocsdboverriding.php on line 21 and defined in C:xampplitehtdocsdboverriding.php on line 13
Sum of three number = 1500
Eg ii
<?php
class base
{
function add($a,$b)
{
$res=$a*$b;
echo "Multiplication = ".$res;
}
}
class child extends base
{
function add($a,$b)
{
$res=$a+$b;
echo "Sum = ".$res;
}
}
$obj= new child();
$obj->add(1000,500);
?>
Output
Sum = 1500
In the above example
class base have a method add with two signature the same method name with same signature defined in class child also.
But when we call the method add( ) through object of its child, its own method have performed (addition of two number). It means child class add( ) method override its base class method add( ).