[PHP]面向对象多态性的体现
2023-02-18 15:37:06 时间
java的多态体现的十分清晰,大体分两类:父类引用指向子类对象;接口引用指向实现接口的类对象。java声明变量时都要给变量设定类型,所以存在什么父类引用和接口引用。而php则没有这点体现,php声明变量不需要给变量设定类型,一个变量可以指向不同的数据类型。所以,php不具有像java一样的多态。
因为php是弱类型语言,如果不开启强类型,对于类型的限制没有那么明显,多态性的作用体现的不清晰
php不具有像java那种清晰的多态,但是php也具有多态性。可以按照下面的方式来变相利用多态性限制传参:
abstract class animal{ abstract function fun(); } class cat extends animal{ function fun(){ echo "cat say miaomiao..."; } } class dog extends animal{ function fun(){ echo "dog say wangwang..."; } } function work($obj){ if($obj instanceof animal){ $obj -> fun(); }else{ echo "no function"; } } work(new dog()); work(new cat());
work函数的传参 , 必须是animail类型 , 在函数里使用instanceof来进行判断,也是多态的一个作用的变相实现
相关文章
- 记一次 .NET 某桌面奇侠游戏 非托管内存泄漏分析
- Prometheus搭乘华为云GaussDB(for Influx):让监控数据更安全
- 数仓如何设置大小写不敏感函数
- 实践丨SpringBoot整合Mybatis-Plus项目存在Mapper时报错
- 从HDFS的写入和读取中,我发现了点东西
- 加快云原生技术转型, 智能调度登陆华为云DevOps: 增速,节源
- 性能指标、响应时间、并发量…聊聊性能优化的衡量指标
- 平衡树:为什么Redis内部实现用跳跃表
- TypeScript里string和String,真不是仅仅是大小写的区别
- 【OpenHarmony移植案例与原理】XTS子系统之应用兼容性测试用例开发
- 华为云发布实时音视频行业加速器,为企业解决技术与商业双重难题
- grpc双向流究竟是什么情况?2段代码告诉你
- 你了解部署流水线吗?
- 昇腾CANN论文上榜CVPR,全景图像生成算法交互性再增强!
- presto是如何保证作业内存不会发生冲突和溢出
- OpenHarmony移植:XTS子系统之应用兼容性测试套件
- 云图说|DRS数据对比——带您随时观测数据一致性
- “==”和“===”,难道不是多一个的区别吗?
- 详解图像处理的算术运算与逻辑运算
- 设计秒杀系统架构,这4个关键点要注意