我正在尝试将祖先(A)分配给后代(B)类型变量并在 PHP 中调用祖先的后代方法,但我无法让它工作。
class B extends A{
public function c(){ echo 'B.c'}
}
我努力了:
重写
B
构造函数class B extends A{ public function __construct($parent) { $this = $parent; } ... }
$this
不能改写,所以不行。
这个东西我忘记怎么叫了
function d(B $b){ $b = new A(); b.c(); }
显式类型转换
function d(){ $b = (B) new A(); b.c(); }
或者
function d(){ $b = settype(new A(),'B'); b.c() }
这也不起作用,因为settype
只允许某些类型而不是其他用户定义的对象类型。