任务描述:建立的Truck类,扩展Car类,并覆盖speedUp()方法,使速度累加50、
<?php
class Car {
public $speed = 0; //汽车的起始速度是0
public function speedUp() {
$this->speed += 10;
return $this->speed;
}
}
//定义继承于Car的Truck类
class Truck extends Car{
public function speedUp(){
$this->speed = parent::speedUp() + 50;
return $this->speed;
}
}
$car = new Truck();
$car->speedUp();
$car->speedUp();
echo $car->speed;
如果调用两次speedUp()方法,输出:120。这还是Truck类的speed累加50么?
程序是从上往下运行的,调用两次那就执行两遍。
根据这三张图来讲,子类重写父类方法时,并不是都必须要去调用父类方法 (parent::+父类方法名)。
继承并扩展
可覆盖
可扩展性
继承,可以扩展(即写新的方法),可以继承(子类默认继承父类所有的方法(构造和析构除外)和属性),可以覆盖(即重写)。