夜光带你走进 传奇语言php(58)进阶篇开始

夜光序言:

 

朋友,不要叹息命运的坎坷。

因为大地的不平衡,才有了河流;

因为温度的不平衡,才有了万物生长的春夏秋冬;

因为人生的不平衡,才有了我们绚丽的生命。

 

 

 

 

 

 

 

正文:

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;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值