PHP类的继承性
类的继承性,一个就是新的子类可以从另一个父类派生出来,并自动拥有父类的全部属性和方法。
PHP中类的继承性规则:
1、子类自动继承父类的所有属性和方法。
2、如果一个子类中的方法与父类同名,那么子类方法自动覆盖父类的方法。
在使用PHP类的继承性需要注意:
1.如果新的类中没有自己的构造函数,那么子类会自动调用父类的构函数。在PHP3以前,则什么也不干。
看一个简单的例子,这个例子什么也干不了,只为了让大家看一下继承中的构造函数的执行过程。
<?
//父类
class a{
function a(){
echo 'class a ';
}
}
//子类
class b extends a{
}
$b = new b;
?>
2.如果新类中有自己的构造函数,那么就执行新类的构造函数。没什么说的。
3.在子类中想应用父类的方法,解决方法有两种 parent::方法() 或 $this->方法() 。建议使用前一种方法,因为后一种方法容易造成子类与父类方法结构上不清。
看一个小例子。
<?
//父类
class a{
function echo_it(){
echo 'class a ';
}
}
//子类
class b extends a{
function echo_b(){
parent::echo_it();
$this->echo_it();
}
}
$b = new b();
$b->echo_b();
?>
4.如果一个子类中的方法与父类同名,那么 parent::方法() 调用的是父类的方法,而 $this->方法() 调用的是子类的方法。
<?
//父类
class a{
function echo_it(){
echo 'class a ';
}
}
//子类
class b extends a{
function echo_it(){
echo "there is nothing.";
}
function echo_b(){
parent::echo_it();
$this->echo_it();
}
}
$b = new b();
$b->echo_b();
?>
5.对于父类的属性的引用方法是:$this->属性。属性是不能区别是父类还是子类的。
PHP的类不同于JAVA的类,它有自己的特点。