类的继承性 类的继承性,一个就是新的子类可以从另一个父类派生出来,并自动拥有父类的全部属性和方法。
PHP中类的继承性规则: 1、子类自动继承父类的所有属性和方法。 2、如果一个子类中的方法与父类同名,那么子类方法自动覆盖父类的方法。
在使用PHP类的继承性需要注意: 1.如果新的类中没有自己的构造函数,那么子类会自动调用父类的构函数。在PHP3以前,则什么也不干。
看一个简单的例子,这个例子什么也干不了,只为了让大家看一下继承中的构造函数的执行过程。 <? //父类 class a{ function a(){ echo 'class a '; } }
//子类 class b extends a{ }
$b = new b; /*结果: class a */ ?>
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(); /*结果: class a class a */ ?>
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(); /*结果: class a there is nothing. */ ?>
5.对于父类的属性的引用方法是:$this->属性。属性是不能区别是父类还是子类的。
写的是我在学习PHP类的感受。PHP的类不同于JAVA的类,它有自己的特点。 |