问答详情
源自:2-8 PHP类和对象之对象继承

PHP继承

任务描述:建立的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么?

提问者:保护我方鲁班七号 2018-03-16 11:14

个回答

  • 星雨星辰
    2018-10-26 10:01:53

    程序是从上往下运行的,调用两次那就执行两遍。

  • 保护我方鲁班七号
    2018-03-16 11:32:25

    根据这三张图来讲,子类重写父类方法时,并不是都必须要去调用父类方法 (parent::+父类方法名)。

  • 保护我方鲁班七号
    2018-03-16 11:26:59

    继承并扩展

    http://img1.mukewang.com/5aab394a0001c56706210517.jpg

  • 保护我方鲁班七号
    2018-03-16 11:25:48

    可覆盖

    http://img1.mukewang.com/5aab393300016a8906170735.jpg

  • 保护我方鲁班七号
    2018-03-16 11:25:06

    可扩展性

    http://img.mukewang.com/5aab386100010eeb06210470.jpg

  • 保护我方鲁班七号
    2018-03-16 11:21:02

    继承,可以扩展(即写新的方法),可以继承(子类默认继承父类所有的方法(构造和析构除外)和属性),可以覆盖(即重写)。