类的继承和应用
继承关键字:extends
class1 --extends--->class2
----extends-->class3
依次被继承,class3拥有class1、class2所以功能和属性,避免方法和属性重名
class
pc1{
}
class pc2 extends
pc1{
} class pc2拥有class
pc1的所有功能和属性
1 class root{ 2 function dayin(){ 3 return "root print基类打印内容"; 4 } 5 } 6 7 class son extends root{ 8 function dayin2(){ 9 return "sonprint子类打印内容"; 10 } 11 } 12 13 $p = new son(); 14 15 echo $p->dayin(); 16 17 //输出结果为 : root print基类打印内容
重载:
方法重载我们也可以理解方法覆盖,在派生类里使用与基类方法
重名的方法名称执行重载
在上面例子中,子类为区别基类方法名,取名为dayin2。如果子类较多,方法名就会较多,可能会出现混乱。因此我们在建立子类时可以使用与基类相同的方法名。这样一来,基类方法就会被子类覆盖。这时我们可以通过使用基类名::基类方法名的方式调用原基类的方法,从而与子类同名方法区别。避免了新建方法带来的混乱。
class root{ function dayin(){ return "root print基类打印内容"; } } class son extends root{ function dayin(){ return root::dayin()."sonprint子类打印内容"; } } $p = new son(); echo $p->dayin();