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

为什么我在父类里定义一下private属性,通过子类继承,可在外面访问,


class Human{
    private   $height;        
}
class Player extends Human {
    protected $age;
    function __construct($name,$height){
         $this->name = $name;
         $this->height = $height;
         }
}
$joden=new Player('joden','25');
echo $joden->height;

正在回答

2 回答

Play的构造方法中这句代码:

$this->height = $height;

相当于给player增加了一个height属性...

0 回复 有任何疑惑可以回复我~

class Human{

    private   $height;

    public function setHeight($h){

    $this->height=$h;

   

    }

    public function printHeight(){

    echo "Human height:".$this->height;

    }

}

class Player extends Human {

    protected $age;

    function __construct($name,$height){ 

         $this->name = $name;

         $this->height = $height;

         }

}

$joden=new Player('joden','25');

echo 'Player Heihgt:'.$joden->height;

echo '<br>';

echo '调用 Human 方法设置Human 的私有height:<br>';

echo $joden->setHeight(30);

echo $joden->printHeight();

echo '<br>';

echo '再次打印Player的Heihgt:'.$joden->height;


1 回复 有任何疑惑可以回复我~
#1

狗剩儿

height一共答应了3次,这段代码想说明第一次输出的height和第二次输出的height不是同一个变量,第一次输出的height是Play构造的,和父函数中被私有化的height没有任何关系,第二个输出的height是通过setheight方法设置的纯正爸爸私家货。思路很清晰,不错!
2016-03-15 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么我在父类里定义一下private属性,通过子类继承,可在外面访问,

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信