PHP子类能否继承父类的构造方法?


这段代码为何会输出father?求合理解释?

   
  <?php
  
class father
{
public function __construct()
{
$this->init();
}

private function init()
{
echo "father\n";
}
}

class son extends father
{
public function init()
{
echo "son\n";
}
}

$son = new son();

面向对象 php

Droid 11 years, 2 months ago

在php中,实例化子类的时候会自动调用父类的构造方法,如果子类不使用父类的构造方法,需要在子类中重写构造方法,所以你的例子会输出father。
如果你不想使用父类的构造方法:

   
  <?php
  
class father
{
public function __construct()
{
$this->init();
}

private function init()
{
echo "father\n";
}
}

class son extends father
{
public function __construct(){}

public function init()
{
echo "son\n";
}
}

$son = new son();

屁股坐麻了 answered 11 years, 2 months ago

Your Answer