繁体   English   中英

为什么调用父级的构造函数

[英]Why is the parent's constructor being called

我有最简单的代码:

接口

interface iCrudRepository{
    public function Create($id);
    public function Read($id);
    public function Update($id);
    public function Delete($id);
}

父级

class Repository
{
   function __construct()
   {
     echo "SHOULD NOT BE CALLED AUTOMATICALLY";
   }
}

require_once(__DIR__.'/../injection/bootstrap.php');

class Admin extends Repository implements iCrudRepository
{
  function Create($id)
  {
  }

  function Read($id)
  {
  }

  function Update($id)
  {
  }

  function Delete($id)
  {
  }
}

$admin = new Admin();
$admin->Create("Something");

bootstrap类通过spl_autoload_register函数自动加载我的类。 由于在Admin类中我不调用父级构造函数,因此它不应该执行父级构造函数中的内容,对吗?

输出

SHOULD NOT BE CALLED AUTOMATICALLY

这里可能遗漏了一些明显的东西,但无法弄清楚为什么调用它。

文件状态:

如果子类定义了构造函数,则不会隐式调用父构造函数。

因此,您必须执行此操作以防止看到以下内容:

class Admin extends Repository implements iCrudRepository
{
    public function __construct()
    {

    }
  function Create($id)
  {
  }

  function Read($id)
  {
  }

  function Update($id)
  {
  }

  function Delete($id)
  {
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM