立华软件园博客
首页
技术文档
源代码
论坛
圈子
博客
书签
文件
相册
商品
游戏开发
程序开发
操作系统
电脑硬件
分类信息
企业信息
安全防护
网站开发与设计
游戏秘技
数码玩家
软件应用
数据库技术
游戏人生
网络游戏
灌水乐园
文艺茶座
历史文化
影音娱乐
数码贴图
活动聚会
车友之家
您的位置:
立华软件园博客
>>
论坛
>>
PHP
>>
查看帖子
字体:
小
中
大
谁在用PHP进行面向对象编程?请给举一个PHP多形性的例子OK?
musezhicangmang 发表于: 2006-5-22 14:12 来源:
立华软件园博客
就是类A是类B1 B2 B3的父类,类A中有一个do()方法被子类继承,然后这个方法在三个子类中又分别被改写,能不能用父类的一个do()来对应不同子类对象的被改写的do()?
在强类型面向对象语言中(C++和JAVA中),这不成问题,可是PHP中这个多形性怎么做到呢,请高手出招!!!!
最新回复
suanmeigui at 2006-5-22 14:13:06
<div>一个多态性的例子:</div>
<?
class foo1
{
var $virtual_func;
function foo1()
{
$virtual_func = "func1";
}
function func1()
{
echo "foo1::func1<br>";
}
}
class foo2 extends foo1
{
function foo2()
{
$virtual_func = "func1";
}
function func1()
{
echo "foo2::func1<br>";
}
}
function call_object_func($o)
{
$o->func1();
}
$obj1 = new foo1;
$obj2 = new foo2;
call_object_func($obj1); // echo foo1::func1
call_object_func($obj2); // echo foo2::func1
?>
<div>就这么简单!</div><br>
<div>对于 C++ 之类的强类型语言,一个对象有两个类型:
<ol>
<li>定义时的类型(静态类型)
<li>运行时的类型(动态类型)
</ol>
所以需要“虚函数”,使对象的动态类型可以与静态类型不同。
</div><br>
<div>而 PHP 是弱类型语言,对象只有运行时的类型,根本不存在“虚”的问题,或者说,PHP 的方法本来就是“虚”的,你还在哪里“寻寻觅觅”什么呢?</div>
查看全部回复
我也来说两句
最新更新主题
Delphi for PHP 来了!
【电子书下载】精通PHP+MySQL应用开发
PHP5.1时区设置
日期显示问题???请大家帮帮手!!...
PHP比ASP优秀的七个理由
关于排列
请各位来谈谈php连接数据库方式……...
如何做繁体版呀!
谁在用PHP进行面向对象编程?请给举一...
请问如何上传文件
立华软件园博客
|
交流论坛
|
快捷面板
|
站点地图
|
友情链接
|
空间列表
|
站点存档
|
联系我们
最新回复
<?
class foo1
{
var $virtual_func;
function foo1()
{
$virtual_func = "func1";
}
function func1()
{
echo "foo1::func1<br>";
}
}
class foo2 extends foo1
{
function foo2()
{
$virtual_func = "func1";
}
function func1()
{
echo "foo2::func1<br>";
}
}
function call_object_func($o)
{
$o->func1();
}
$obj1 = new foo1;
$obj2 = new foo2;
call_object_func($obj1); // echo foo1::func1
call_object_func($obj2); // echo foo2::func1
?>
<div>就这么简单!</div><br>
<div>对于 C++ 之类的强类型语言,一个对象有两个类型:
<ol>
<li>定义时的类型(静态类型)
<li>运行时的类型(动态类型)
</ol>
所以需要“虚函数”,使对象的动态类型可以与静态类型不同。
</div><br>
<div>而 PHP 是弱类型语言,对象只有运行时的类型,根本不存在“虚”的问题,或者说,PHP 的方法本来就是“虚”的,你还在哪里“寻寻觅觅”什么呢?</div>