夜光序言:
朋友,不要叹息命运的坎坷。
因为大地的不平衡,才有了河流;
因为温度的不平衡,才有了万物生长的春夏秋冬;
因为人生的不平衡,才有了我们绚丽的生命。
正文:
PHP类和对象之对象继承
继承是面向对象程序设计中常用的一个特性,汽车是一个比较大的类,我们也可以称之为基类,除此之外,汽车还分为卡车、轿车、东风、宝马等,因为这些子类具有很多相同的属性和方法,可以采用继承汽车类来共享这些属性与方法,实现代码的复用。
任务
建立一个Truck类,扩展Car类,并覆盖speedUp方法,使速度累加50
在子类中如果定义了__construct则不会调用父类的__construct,如果需要同时调用父类的构造函数,需要使用parent::__construct()显式的调用。
//定义继承于Car的Truck类
class Truck extends Car{
public function speedUp(){
$this->speed += 50;
return $this->speed;
}
}
不行的,因为你最后调用的是继承Car类的新Truck类,所以使用的是被覆盖的speedUP,就是累加50,就是50,而不是60,parent::speedUP()是调用父类Car中的speedUP方法,调用完了之后再原来加10的基础上再加。就是掌握掌握调用方法
/**
* Created by PhpStorm.
* User: 夜光
* Date: 2019/7/14
* Time: 21:40
*/
<?php
class Car {
public $speed = 0; //汽车的起始速度是0
public function speedUp() {
$this->speed += 10;
return $this->speed;
}
}
//定义继承于Car的Truck类
class Truck extends Car{
public $speed = 50;
public function speedUp(){
$this->speed=parent::speedUp();
}
}
$car = new Truck();
$car->speedUp();
echo $car->speed;