发现自己对这些概念一直比较模糊,特总结如下:
1.在子类没有构造方法的情况下,默认调用父类的构造方法
2.如果子类有构造方法,则不会调用父类的构造方法,并且会覆盖父类的成员变量;如果要调用,则用parent::__construct();
3.父类的成员变量和方法默认会被子类所继承
eg:
class A{
public $a = array();
public $b = '';
public function __construct(){
$this->a = array('a', 'b', 'c');
$this->b = 'bobby';
echo 'construct' . "\n";
}
public function get(){
print_r($this->a);
}
}
class B extends A{
public function __construct(){
parent::__construct();
$this->c = 'CC';
}
public function get(){
array_push($this->a, 'd');
print_r($this->a);
echo $this->c;
}
public function getb(){
echo parent::$this->b;
}
}
//$a = new A();
$b = new B();
$b->get();
$b->getb();