php核心+实践学习(第一章)
- 直接回答php多态
PHP作为一种脚本语言,自身就是多态的,在语言的级别不谈PHP的多态!(有多态,是多态) php实现多态的两个例子
class Employee{ protected function working(){ echo "本方法需要重载才能运行"; } } class Teacher extends Employee{ public function working(){ echo '教书'; } } class Coder extends Employee{ public function working(){ echo '敲代码'; } } function doprint($obj){ if(get_class($obg)=='Employee'){ echo 'error'; }else{ $obj->working(); } } doprint(new Teacher); doprint(new Coder); doprint(new Employee);
interface Employee{
public function working();
}
class Teacher implements Employee{
public function working(){
echo '教书';
}
}
class Coder implements Employee{
public function working(){
echo '敲代码';
}
}
function doprint(Employee $obj){
$obj->working();
}
doprint(new Teacher);
doprint(new Coder);
是不是so easy! PHP语言是弱类型的,实现多态简单,灵活
注:类型转换不是多态,
业务本质:多态就是if…else,只不过实现的层级不同。