多态(Polymorphism)按字面的意思就是“多种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态。引用Charlie Calverts对多态的描述——多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作(摘自“Delphi4 编程技术内幕”)。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。多态性在Object Pascal和C++中都是通过虚函数(Virtual Function) 实现的。
在PHP语言中可以使用接口来表现出多态特性
<?php
interface employee{
public function working();
}
class coder implements employee{
public function working(){
echo "coding",PHP_EOL;
}
}
class run implements employee{
public function working(){
echo "run",PHP_EOL;
}
}
function doPrint(employee $a){
echo $a->working();
}
$m = new coder();
$n = new run();
doPrint($m);
doPrint($n);
?>