【发布时间】:2011-09-13 07:06:20
【问题描述】:
我一直在用 C++ 编程,但已经转向 PHP 有一段时间了,PHP 中的多态性似乎有所不同。我知道在 PHP 中,所有非私有(即公共/受保护)的函数实际上也是虚拟的。这是我的子类定义
class Child extends Parent {
public function foo() {
}
}
那么我的父母看起来像
class Parent {
public function foo() {
}
}
我希望我的子类使用除 foo() 函数之外的所有父代码 - 我希望子类使用它自己的 foo() 函数。
问题是父母的foo() 仍然被调用。有趣的是,我的 IDE (NetBeans) 说它被正确覆盖了。
我在父母和孩子中使用$this->foo().. 这应该可以吧?它只是说'为当前对象执行函数 foo'.. 也许我在这里出错了?
【问题讨论】:
-
Parent::foo在执行$child->foo()时不应被调用。你的代码可能有问题。你能发布一个展示这种行为的例子吗? -
大家好,感谢您的帮助。原来我很傻。我正在提交一个页面,在提交的页面上,它创建了一个在提交页面上定义的类的对象,我正在包含文件!对不起:-S。
标签: php