【发布时间】:2014-07-29 02:33:54
【问题描述】:
我可以将一个对象向上转换为它的父对象吗?
示例代码
class ClassA {
public function foo(){
echo get_class($this);
}
}
class ClassB extends ClassA {
public function foo(){
echo get_class($this); // prints ClassB :)
parent::foo(); // prints ClassB / I want ClassA :(
}
}
$B = new ClassB();
$B->foo();
在 PHP 中可以吗?
在我的场景中,我正在构建 ClassB,我想覆盖函数 ClassB::Foo() 以扩展其行为,然后将控件处理回它的父函数 ClassA::Foo() 但代码中断,因为它是现在是 ClassB 的对象。请不要因为“代码气味”而责备我,因为我现在觉得它很难看! ClassA 是我无法控制的... :-)
【问题讨论】:
-
好吧,为什么不试试呢?