问答详情
源自:2-6 PHP类和对象之Static静态关键字

关于类名::方法名调用的问题

<?php

class car{

public static $speed=10;

public   static function getspeed(){

return self::$speed;}

public  static function speedup(){

return self::$speed+=10;}}

class abb extends car{

public  static function start(){

return parent::speedup();}}

abb::start();            echo abb::getspeed();

还有一个问题,请看最后子类类名::子类方法来调用执行方法得到speed为20.然后利用子类类名::父类方法输出结果为20,那如果我用car::getspeed();这种父类类名::父类方法也能得到20,有区别吗这种不同的调用


提问者:a10282465693872396 2016-09-12 14:21

个回答

  • onTheLine3320682
    2016-09-12 14:28:01
    已采纳

    static

  • 慕慕8584764
    2016-09-12 14:41:15

    abb::getspeed();和car::getspeed();这两种调用都是直接调用父类的getspeed()方法。

    而abb::start()输出的结果也是20是因为在start()直接返回了父类的getspeed()调用,但是除此之外,在编写代码的时候start()方法还可以做其他事情。