PHP面向对象多态性实现方法简单示例
PHP面向对象编程中的多态性实现及其运用实例
在面向对象编程中,多态性是一种重要的特性,它允许不同的对象对同一消息产生不同的响应。在PHP中,多态性的实现主要通过父类引用指向子类对象以及接口引用指向实现接口的类对象来完成。本文将通过具体实例PHP中面向对象多态性的实现方法。
一、多态性的概念
多态是指一个引用类型能够引用多种实际类型的能力。在PHP中,我们可以通过使用instanceof关键字来检查一个对象是否属于某个类或者是否实现了某个接口,从而实现多态性。
二、PHP中的多态实现
下面是一个简单的PHP代码示例,展示了多态性的实现方法:
1. 定义抽象类animal,包含一个抽象方法fun()。
2. 定义cat和dog类,分别继承自animal类,并实现fun()方法。
3. 定义work类,包含一个polymorphic()方法,用于接收一个animal类的实例,并调用其fun()方法。
```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...";
}
}
class work {
function polymorphic($obj) {
if ($obj instanceof animal) {
$obj->fun();
} else {
echo "no function";
}
}
}
```
三、多态性的运用实例
1. 通过work类的对象调用polymorphic()方法,并传入cat和dog类的实例,实现多态性。
```php
$new_work = new work();
$new_work->polymorphic(new cat()); // 输出:cat say miaomiao...
$new_work->polymorphic(new dog()); // 输出:dog say wangwang...
```
2. 如果需要指定类类型,可以在方法中直接定义类类型参数。例如,在work类中定义一个bose()方法,专门用于接收cat类的实例。
```php
class work {
// ...之前的代码...
function bose(cat $obj) {
$obj->fun();
}
}
$new_work->bose(new cat()); // 输出:cat say miaomiao...
```
如果传入其他未继承cat类的实例,将会报错。但如果传入继承了cat类的子类实例(如mouse类),则不会报错。
本文通过具体实例详细了PHP中面向对象多态性的实现方法。通过父类引用指向子类对象以及接口引用指向实现接口的类对象,我们可以实现多态性,使程序更加灵活和可扩展。希望本文能对大家学习PHP面向对象编程有所帮助。更多关于PHP的内容,请查看相关专题。
编程语言
- PHP面向对象多态性实现方法简单示例
- 动态加载JavaScript文件的两种方法
- Thinkphp 框架配置操作之动态配置、扩展配置及批
- js倒计时抢购实例
- 通过Windows批处理命令执行SQL Server数据库备份
- jQuery展示表格点击变色、全选、删除
- PHP测试成功的邮件发送案例
- thinkPHP商城公告功能开发问题分析
- SQL 复合查询条件(AND,OR,NOT)对NULL值的处理方法
- PHP中file_exists使用中遇到的问题小结
- 老鸟带你开发专业规范的MySQL启动脚本
- 浅析JavaScript中的事件机制
- 微信小程序教程系列之页面跳转和参数传递(6)
- jquery实现用户打分评分特效
- nodejs6下使用koa2框架实例
- webpack配置sass模块的加载的方法