php面向对象--多态
2015-11-15 13:04
507 查看
先解释一下多态:php面向对象的多态就是指通过一个抽象类或者接口定义出子类所实现的方法,之后在一个函数或者类的方法中传入之前定义的每个子类实例化后的对象名,通过调用新的类中同一个的方法(由于参数不同)实现不同对象不同的执行逻辑.(自己的理解,非官方).
下面在一个例子:
<?php
//定义父类接口
interface Person{
function getName();
function getAge();
}
//第一个子类
class Phper implements Person{
public function getName()
{
echo 'this is php\'getName';
}
public function getAge()
{
echo 'this is php\'getAge';
}
}
//第二个子类
class Javaer implements Person{
public function getName()
{
echo 'this is jave\'getName';
}
public function getAge()
{
echo 'this is java\'getAge';
}
}
//一个全新的类
class my{
function isMy($obj)//这里的参数是个对象名称
{
$obj->getName();
echo "<br>";
$obj->getAge();
}
}
//分别实例化之前的几个类
$php = new Phper;
$java = new Javaer;
$my = new My;
$my->isMy($java);//通过传入不同的对象的名称,执行不同的业务逻辑
?>
如果你要问我这个东西有什么用呢,那我只能说可能在对代码的规范,以及理解上有一些帮助.其他的我也不清楚.因为实际工作的过程中我也没有碰到过应用多态的场景.
希望博友有新的见解或者比较好的案例可以在评论中给出解释或者链接.
本文出自 “吴泽辉的php博客” 博客,请务必保留此出处http://phpwzh.blog.51cto.com/6651035/1712873
下面在一个例子:
<?php
//定义父类接口
interface Person{
function getName();
function getAge();
}
//第一个子类
class Phper implements Person{
public function getName()
{
echo 'this is php\'getName';
}
public function getAge()
{
echo 'this is php\'getAge';
}
}
//第二个子类
class Javaer implements Person{
public function getName()
{
echo 'this is jave\'getName';
}
public function getAge()
{
echo 'this is java\'getAge';
}
}
//一个全新的类
class my{
function isMy($obj)//这里的参数是个对象名称
{
$obj->getName();
echo "<br>";
$obj->getAge();
}
}
//分别实例化之前的几个类
$php = new Phper;
$java = new Javaer;
$my = new My;
$my->isMy($java);//通过传入不同的对象的名称,执行不同的业务逻辑
?>
如果你要问我这个东西有什么用呢,那我只能说可能在对代码的规范,以及理解上有一些帮助.其他的我也不清楚.因为实际工作的过程中我也没有碰到过应用多态的场景.
希望博友有新的见解或者比较好的案例可以在评论中给出解释或者链接.
本文出自 “吴泽辉的php博客” 博客,请务必保留此出处http://phpwzh.blog.51cto.com/6651035/1712873
相关文章推荐
- php性能优化
- editplus移植U盘计划
- PHP程序中字符串的使用
- (PHP)正则表达式-preg_quote-转义正则表达式字符的用法
- (PHP)正则表达式-preg_split函数的用法
- 实现多个ContentProvider对多张表进行操作
- PHP程序中命名空间的使用
- php中类的继承
- PHP 判断指定IP,是否在一个IP段里
- 4步win7下简单FTP服务器搭建(试验成功)
- php处理图像的函数
- 产品列表页分类筛选、排序的算法实现(PHP)
- Laravel学习实践(三)Laravel发送邮件
- zendstudio 出现failed to create the java machine转
- Mac平台搭建php平台
- PHP删除Array数组里指定的key(完整版,已封装成函数,附测试代码)
- PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
- 接收post数据的形式
- phpize报cannot find autoconf
- GetProcessIdOfThread在WinXP及之前操作系统的替代实现