class Truck extends Car{ public function speedUp(){ $this->speed=parent::speedUp()+50; } }
1、parent::speedUp()这里为什么要这样写呢
2、还有事速度累加50,意思是说在父类speed已经加上10的基础上再加50吗?还是说在speed=0的基础上加50
1、parent::speedUp()这里为什么要这样写呢
2、还有事速度累加50,意思是说在父类speed已经加上10的基础上再加50吗?还是说在speed=0的基础上加50
2017-05-02
<?php class Car { public $speed = 0; //汽车的起始速度是0 public function speedUp() { $this->speed += 10; return $this->speed; } } //定义继承于Car的Truck类 class Truck extends Car{ function speedUp () { $this -> speed = parent::speedUp(); return $this -> speed +=50; } } $car = new Truck(); $car->speedUp(); echo $car->speed;
表示子类Truck集成了父类car, 其中的parent::speedUp();表示调用父类的speedUp()方法。
子类覆盖父类的方法是要通过在子类中重新编写新的方法,如果不更改的话,则默认子类继承父类的方法。例如
class parentClass { public function test(){ echo "parent"; }}
1--> class childClass extends parent{ } 如果子类继承父类但并没有重写其中的test方法,那么则继承父类的test方法
即 $child = new childClass(); $child->test();//输出parent
2--> classchildClass extends parent{ public function test(){ echo "child"; }} 如果子类重写了方法,那么再实例化childClass类调用test方法会调用子类重写后的test方法。也就是说,如果儿子有能力(指重写了方法),那么就能够继承父亲的财产(父类的方法)并且把它发扬光大(重写);如果儿子没能力(没有重写方法),那么久只能够啃老(调用父类的方法)。这样希望能帮你理解吧。
举报