dongzen2675 2013-10-25 19:46
浏览 45
已采纳

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

in php I have this code. I'm trying to get an inherited method to utilize a member variable of its child class.

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

unfortunately this prints nothing. any insights as to why?

  • 写回答

1条回答 默认 最新

  • duangan6636 2013-10-25 19:54
    关注

    in child class You need to reffer to parent::__construct() by doing something like

    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);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?