extends
的本质是什么?
class Person{
public $name;
public $age;
public function __construct($name, $age)
{
$this->name = $name;
$this->age = $age;
}
}
class Woman extends Person{
public $hair;
public function __construct($name, $age, $hair)
{
parent::__construct($name, $age);
$this->hair = $hair;
}
}
给定一个类的鞋面扩展示例。
我听说extends
的本质是将代码从父类复制到子类,但我不知道该如何验证。
PHP编译时extends
的本质是什么?
请参见以下代码段:
public function __construct($name, $age, $hair)
{
parent::__construct($name, $age);
$this->hair = $hair;
}
如果扩展本质是将复制代码混合在一起,那么我猜PHP编译会将上面的代码段转换为以下代码:
public function __construct($name, $age, $hair)
{
$this->name=$name;
$this->age=$age;
$this->hair=$hair;
}
那么extends的本质是什么?如何处理parent
关键字?
如果显示Woman子类的PHP编译结果,我们可以知道扩展的本质。而且我想知道PHP如何实现extends
的功能。
PHP是一种开放源语言,也许有源代码可以解释。