当前位置:实例文章 » PHP实例» [文章]PHP面试:什么是类的多态性,请写出一个例子

PHP面试:什么是类的多态性,请写出一个例子

发布人:shili8 发布时间:2022-12-07 15:10 阅读次数:28

类的三大特性,封装、继承、多态,前两个比较简单,一般不会问到,多态则是考察最多的,一般出现在笔试中。

描述

多态性是指同一操作作用于不同的类的实例上可执行不同的逻辑。

多态是指 执行不同的逻辑 ,很多资料上介绍这里时总是说
“同一操作作用于不同的类的实例上时,会获得不同的结果。”,当年看到时就很困惑,一个函数给不同参数的时候它的结果也是不同的,这不是理所当然的嘛,其他它根本不在乎结果是否相同,而是强调执行不同的逻辑,即走到不同的方法体内。


示例

interface animal{
   function can();
}
class cat implements animal{
    function can(){
        echo "i can climb";
    }
}
class dog implements animal{
    function can(){
        echo "i can swim";
    }
}
function work($obj){
  if($obj instanceof animal){
    $obj->can();
  }else{
    echo 'no can';
  }
}
work(new cat());
work(new dog());

运行work时会根据传入参数的不同,选择执行不同的can方法。

上边的父类是接口,对于接口与普通类同样适用。


相关标签:

免责声明

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱290110527@qq.com删除。

其他信息

其他资源

Top