php多态权威解释

php核心+实践学习(第一章)

  1. 直接回答php多态
    PHP作为一种脚本语言,自身就是多态的,在语言的级别不谈PHP的多态!(有多态,是多态)
  2. 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,只不过实现的层级不同。

猜你喜欢

转载自blog.csdn.net/qq_40393605/article/details/81142966