php多态我的理解就是相同的函数、操作或者过程作用于不同的对象中,得到不同的结果。
下面的代码中。实现接口的chuliqi和usb类就是不同的对象。而yunxin类就是相同的操作。代码重用性高。便于修改。
多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息将可以产生不同的结果,这种现象称为多态性。
多态性允许每个对象以适合自身的方式去响应共同的消息。多态性增强了软件的灵活性和重用性。
在面向对象的软件开发中,多态性是最为重要的部分之一。面向对象编程并不只是将相关的方法与数据简单的结合起来,而是采用面向对象编程中的各种要素将现实生活中的各种情况清晰的描述出来。这一小节将对面向对象编程中的多态性作详细的讲解。
1.什么是多态
多 态(Polymorphism)按字面上意思理解就是“多种形状”。可以理解为多种表现形式,也即“一个对外接口,多个内部实现方法”。在面向对象的理论 中,多态性的一般定义为:同一个操作作用于不同的类的实例,将产生不同的执行结果。也即不同类的对象收到相同的消息时,将得到不同的结果。
在实际的应用开发中,采用面向对象中的多态主要在于可以将不同的子类对象都当作一个父类来处理,并且可以屏蔽不同子类对象之间所存在的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。
2. 多态的应用设计
在实际的应用开发中,通常为了使项目能够在以后的时间里的轻松实现扩展与升级,需要通过继承实现可复用模块进行轻松升级。在进行可复用模块设计时,就需要尽可能的减少使用流程控制语句。此时就可以采用多态实现该类设计。
[php]
<?php
interface shebei{
function get();
function work();
function unload();
}
class chuliqi implements shebei{
function get(){
echo "获取设备<br>";
}
function work(){
echo "设备开始运行<br>";
}
function unload(){
echo "卸载设备<br>";
}
}
class usb implements shebei{
function get(){
echo "获取usb<br>";
}
function work(){
echo "usb开始工作<br>";
}
function unload(){
echo "卸载usb";
}
}
class yunxin{
function go($sb){
$sb->get();
$sb->work();
$sb->unload();
}
}
class shixian{
function sx(){
$p=new yunxin;//多态
$v=new usb;
$s=new chuliqi;
$p->go($s);
$p->go($v);
}
}
$w=new shixian;
$w->sx();
?>
[/php]
结果:
获取设备
设备开始运行
卸载设备
获取usb
usb开始工作卸载usb
更多关于PHP多态的文章:
http://www.cnblogs.com/tecs27/archive/2012/03/13/2394028.html
http://www.jb51.net/article/30248.htm