class A {
public $name = '1111';
function __construct() {
$name = "2222";
}
}
class B extends A{
public function test()
{
$name='333';//我是想在这个方法里直接使用父类的$name,并且期望值是2222
}
}
$b=new B();//实例化一下,不应该走了构造函数了吗
echo $b->name;//这里为什么输出的是1111呢,走了构造函数不应该是2222吗?
调用属性要$this->name,直接$name是声明了局部变量。
php不太清楚,但对象概念应该都差不多。
所以class B 应该是有自己隐式的构造函数的,只是方法内部默认什么都没有做。
所以name属性直接继承了父类的属性。 对象概念的继承应该是没有继承构造函数这一说法的吧。
我怎么记得PHP和Python和java一样,都需要显式调用父类构造函数:
class B extends A{
public function __construct() {
parent::__construct();
}