为了账号安全,请及时绑定邮箱和手机立即绑定

扩展类无法从父类获取数据

扩展类无法从父类获取数据

PHP
慕码人8056858 2021-04-27 18:49:22
我试图在扩展类中使用显示函数,该类首先在父类中获取显示函数。但是,它不会在echo语句中显示变量。游戏类型(在这种情况下为“一日”)不会显示。<?phpclass Cricket{    protected $gameType;    function __construct($gameType)    {        $this->gameType=$gameType;    }    function display()    {        echo 'The cricket match is a ' . $this->gameType . " match";    }}class Bowler extends Cricket{    public $type;    public $number;    function __construct($type,$number)    {        $this->type=$type;        $this->number=$number;        parent::__construct($this->gameType);    }    function display()    {        parent:: display();        echo " with " . $this->number . " " . $this->type . " bowler";    }}   $one = new Cricket("day-night");$one->display();echo'<br>';$two  = new Cricket("day-night");$two = new Bowler("left-hand","2");$two->display();?>
查看完整描述

1 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞

实际上,实例化保龄球类的过程,正如调用父级构造函数所暗示的那样parent::__construct();,将创建一个全新的板球类以及保龄球类。


因此,尝试访问此新创建的Cricket类的属性没有任何意义。


因此,当您实例化Bowler该类时,您还必须传递Cricket类成功构建所需的任何数据。


所以举个例子


<?php

class Cricket

{

    protected $gameType;


    function __construct($gameType)

    {

        $this->gameType=$gameType;

    }


    function display()

    {

        echo 'The cricket match is a ' . $this->gameType . " match";

    }

}


class Bowler extends Cricket

{

    public $type;

    public $number;


    function __construct($gameType, $type, $number)

    {

        $this->type=$type;

        $this->number=$number;


        parent::__construct($gameType);

    }


    function display()

    {

        parent:: display();

        echo " with " . $this->number . " " . $this->type . " bowler";

    }

}   


$two = new Bowler('day-night', "left-hand","2");

$two->display();


查看完整回答
反对 回复 2021-05-14
  • 1 回答
  • 0 关注
  • 97 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信