如果我没有为子类定义构造函数,我可以直接使用超类的构造函数吗?

Uğu*_*han 6 php oop inheritance constructor

构造函数是继承的还是属于它们所定义的类?我只看到了子类构造函数的例子,它们调用了超类的构造函数.这是我目前的代码,它可以提供一些有关正在发生的事情的提示.(我将根据您的回复更改代码.如果我可以使用超类的构造函数,我将不为每个子类定义构造函数,并从每个子类调用超类的构造函数.

abstract class view
{
 public $vieverid;

 function __construct($viewerid) {
  $this->viewer = $viewerid;
 }
}
class viewactor extends view{

 function __construct($viewerid) {
  $this->viewerid = $viewerid;
 }
Run Code Online (Sandbox Code Playgroud)

Utk*_*rım 3

parent::__construct(params);用于调用超类构造函数

PHP4

PHP 不会从派生类的构造函数自动调用基类的构造函数。您有责任在适当的情况下将调用传播到上游构造函数。

PHP5

如果定义了 new 构造函数,PHP 不会调用基类的构造函数。如果为派生类定义构造函数,则您有责任在适当的情况下将调用传播到上游构造函数。父级::__construct(参数)

构造函数

abstract class view
{
 public $vieverid;

 function __construct($viewerid) {
  $this->vieverid= $viewerid;
 }
}

class viewactor extends view{

 function __construct($viewerid) {
   parent::__construct($viewerid);
   // Extra code if you want
 }
}

class viewactor_construct extends view{
    // Works in PHP5
}
Run Code Online (Sandbox Code Playgroud)