php多态性是什么

  介绍

小编给大家分享一下php多态性是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

多态性是指相同的操作或函数,过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息将可以产生不同的结果,这种现象称为多态性。

多态性允许每个对象以适合自身的方式去响应共同的消息。多态性增强了软件的灵活性和重用性。

<强>一、什么是多态吗?

多态(多态性)按字面上意思理解就是“多种形状”。可以理解为多种表现形式,也即“一个对外接口,多个内部实现方法”。在面向对象的理论中,多态性的一般定义为:同一个操作作用于不同的类的实例,将产生不同的执行结果。也即不同类的对象收到相同的消息时,将得到不同的结果。

在实际的应用开发中,采用面向对象中的多态主要在于可以将不同的子类对象都当作一个父类来处理,并且可以屏蔽不同子类对象之间所存在的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。

<强>二,多态的应用设计

在实际的应用开发中,通常为了使项目能够在以后的时间里的轻松实现扩展与升级,需要通过继承实现可复用模块进行轻松升级,在进行可复用模块设计时,就需要尽可能的减少使用流程控制语句。此时就可以采用多态实现该类设计。

举例:

类画家{//定义油漆工类   公共函数画笔(){//定义油漆工动作   回声“油漆工正在刷漆! \ n";   }   }   类打字员{//定义打字员类   公共函数类型(){//定义打字员工作   回声“打字员正在打字! \ n";   }   }   函数印花厂(obj美元){//定义处理类   如果(obj instanceof画家美元){//若对象是油漆工类,则显示油漆工动作   美元obj→画笔();   }elseif (obj instanceof打字员美元){//若对象是打字员类,则显示打字员动作   美元obj→输入();   其他}{//若非以上类,则显示出错信息   回声“错误:对象错误!“;   }   }   印花厂(新画家());//显示员工工作   印花厂(新打字员());//显示员工工作

分析:在上述程序中,首先定义两个员工类:油漆工类和打字员类。然后定义一个处理函数,在该函数中,判断员工是否为已经定义的员工,打印出员工的工作状态。其结果如下所示。

油漆工正在刷漆,
打字员正在打字

从以上程序可轻松看出,若想显示其几种员工的工作状态,需要首先定义该员工类,并在该员工类中定义员工的工作,然后在印花厂()函数中增加elseif语句以检查对象是哪一员工类的实例。这在实际的应用中,是非常不可取的。若此时采用多态,则可以轻松解决此问题。

以上是php多态性是什么的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

php多态性是什么