首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

浅谈PHP(面向对象)中的多态

我们都知道面向对象中有三大特性:封装、继承、多态。相对于封装和继承,多态要相对复杂一些。

多态:相同的操作或函数、过程可以作用于多种类型的对象,并获取不同的结果。也就是说不同的对象,收到相同的消息后能产生不同的结果。

亦可以理解为:多种现状(状态),即一个对外的接口,有多个内部实现的方法,从而得到不同的结果。

比如电商网站中的推荐,男性、女性用户进入首页后,会有不同的商品展示出来,这也是一种多态的表现。

实例

最近一个项目中(优喔app,现在可能已经挂掉了),女主播打开世界动态,顶部消息栏有个推送:app监听socket的msgShow方法,将会获取不同的消息推送(男用户登录,用户充值,用户打赏礼物等),内部实现包括socket、http等请求调用相同的接口,方法。

我们再举一个简单的例子

场景描述:定义员工的工作状

子类继承父类

分析:在上述程序中,首先定义一个员工基类,并定义一个员工工作状态的方法。然后定义将继承自员工基类的三个员工类:油漆工类、打字员类和经理类。然后定义显示员工工作状态的方法。并在该方法中创建一个“是否”关系,用于判断是否为合法的员工。其结果如下所示。

油漆工正在刷漆!

打字员正在打字!

经理正在开会!

从上例可发现,无论增加多少个员工类,只需要实现自员工父类继承的该员工类和方法。而无须修改显示员工工作状态的方法printworking()

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20221228A07RIB00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券