0

在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;
   }
}

不幸的是,这什么也没打印。关于为什么的任何见解?

4

1 回答 1

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);
于 2013-10-25T19:54:17.553 回答