我有一个抽象类,它扩展了另一个类,函数被定义为 protected ,而且这个函数继承自另一个类,现在我试图调用该函数。 它给了我错误。我不知道我有什么问题。我的代码如下:
abstract class abc {
abstract protected function f1($name, $address);
}
class xyz extends abc {
protected function f1($name, $address) {
return "$name , $address";
}
}
class jkl extends xyz {
echo $this->f1('Ravi','Delhi');
}
答案 0 :(得分:0)
要使代码正常工作,您应该将jkl中的echo
包装在公共函数中。
<?php
abstract class abc {
abstract protected function f1($name, $address);
}
class xyz extends abc {
protected function f1($name, $address) {
return "$name , $address";
}
}
class jkl extends xyz {
public function echodata(){
return $this->f1('Ravi','Delhi');
}
}
echo (new jkl)->echodata();
答案 1 :(得分:0)
您正在尝试将代码调用以在类定义中调用受保护的方法,但不在方法内部。这不是有效的。您需要将其放在方法中:
class jkl extends xyz {
public function go(){
echo $this->f1('Ravi','Delhi');
}
}
然后创建该类的实例并从主程序体中调用该方法:
$obj = new jkl;
$obj->go();
HTH