this,self,parent三个关键字从字面上比较好理解,分别是指这、自己、父亲。
this是指向当前对象的指针(姑且用C里面的指针来看吧)
self是指向当前类的指针
parent是指向父类的指针(我们这里频繁使用指针来描述,是因为没有更好的语言来表达)
我们知道parent是指向父类的指针,一般我们使用parent来调用父类的构造函数。
重写时访问级别只可以等于或者宽松于父类 不可提升访问级别
访问权限提升 错误
父类为public 则子类重写也只能为public
父类为protected 则子类可为public/protected
父类为private 则子类public/protected/private皆可
<?php
/*
* 重写/override
* 指:子类重写了父类的同名方法
* 重载:overload
* 指:存在多个同名方法,但参数类型或者个数不同
* 通过传递不同的参数调用不同的方法。
* 但是PHP不允许同时存在多个同名的方法,因此不能像Java一样完成这样的重载
* 但是,PHP的灵活性能达到类似的效果,用func_get_args()
*/
class Human{
public function say(){
echo '吃了吗';
}
}
class Stu extends Human{
public function say()
{
echo 'hello <br/>';
parent::say(); // TODO: Change the autogenerated stub
}
}
$ming=new Stu();
$ming->say();