抽象成员函数无法访问继承类的属性

时间:2013-10-25 19:46:39

标签: php function inheritance abstract member

在PHP中

我有这个代码。我正在尝试使用继承的方法来利用其子类的成员变量。

abstract class HtmlObj{
//abstract protected function jQuery_Activity();
public $hyperlink;
abstract protected function php_Activity();
abstract protected function print_Widget();

function __construct($hyperlink=""){
    if(isset($hyperlink)){
        $this->hyperlink = $hyperlink;
    }
    $this->php_Activity();
    $this->Print_Widget();
}

}

class child extends HtmlObj{
   public $id;
   protected function php_Activity(){return;}
   protected function print_Widget(){
      print $this->id;
   }
   function __construct($id){
     this->id = $id;
   }
}

遗憾的是,这并没有打印出来。任何关于为什么的见解?

1 个答案:

答案 0 :(得分:1)

子类中的

您需要通过执行类似

的操作来引用parent :: __ construct()
abstract class HtmlObj
{
//abstract protected function jQuery_Activity();
    public $hyperlink;

    abstract protected function php_Activity();

    abstract protected function print_Widget();

    function __construct($hyperlink = "")
    {
        if (isset($hyperlink)) {
            $this->hyperlink = $hyperlink;
        }
        $this->php_Activity();
        $this->Print_Widget();
    }
}

class child extends HtmlObj
{
    public $id;

    protected function php_Activity()
    {
        return;
    }

    protected function print_Widget()
    {
        print $this->id;
    }

    function __construct($id)
    {
        $this->id = $id;
        parent::__construct();
   }
}

new child(10);