如何才能在子类中访问私有属性 [英] How can it possible that a private propery is access in child class

查看:114
本文介绍了如何才能在子类中访问私有属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

先生,当我们在子类中取消注释getModel方法并执行它显示错误私有属性无法在子进程中访问但在get_Display方法中相同的问题是访问它是如何可能的或者我犯了错误?



class Tv {

public $ volume;

private $ model;



function volume_up(){

$ this-> volume ++;

}





函数__construct($ m,$ v){

$ this-> model = $ m;

$ this-> volume = $ v;

}



函数getModel(){

返回$ this-> model;



}



}











$ obj =新电视('xyz',10);

/ / $ obj-> model; //错误无法访问私有财产



echo $ obj-> getModel(); //可以访问私有财产





类Plazma扩展电视{

/ * function getModel(){

返回$ this->型号;



} * /





函数get_Display(){

返回$ this-> model ='AXN';



}





}



$ obj2 =新Plazma('xyz',10);

// $ obj-> model; //错误无法访问私有财产



// $ obj2-> getModel(); / /可以访问私人财产

echo $ obj2-> get_Display('ANX');

?>



我的尝试:





class Tv {

public $ volume;

private $ model;



function volume_up(){

$ this-> volume ++;

}





函数__construct($ m,$ v){

$ this-> model = $ m;

$ this-> volume = $ v;

}



函数getModel(){

返回$ this-> model;



}



}











$ obj =新电视('xyz',10);

/ / $ obj-> model; //错误无法访问私有财产



echo $ obj-> getModel(); //可以访问私有财产





类Plazma扩展电视{

/ * function getModel(){

返回$ this->型号;



} * /





函数get_Display(){

返回$ this-> model ='AXN';



}





}



$ obj2 =新Plazma('xyz',10);

// $ obj-> model; //错误无法访问私有财产



// $ obj2-> getModel(); / /无法访问私人财产

echo $ obj2-> get_Display('ANX ); //但是这里私有财产是访问原因?

?>

解决方案

卷;

private

模型;



function volume_up(){


this-> volume ++;

}





函数__construct(


sir when we un-comment the getModel method in child class and execute it dispaly error private property can not access in child but in get_Display method same propety is access how is it possible or i m making a mistake?

class Tv{
public $volume;
private $model;

function volume_up(){
$this->volume++;
}


function __construct($m,$v){
$this->model=$m;
$this->volume=$v;
}

function getModel(){
return $this->model;

}

}





$obj=new Tv('xyz',10);
//$obj->model;//error can not access private property

echo $obj->getModel();// can access private property


class Plazma extends Tv {
/*function getModel(){
return $this->model;

}*/


function get_Display( ){
return $this->model='AXN';

}


}

$obj2=new Plazma('xyz',10);
//$obj->model;//error can not access private property

// $obj2->getModel();// can access private property
echo $obj2->get_Display('ANX');
?>

What I have tried:


class Tv{
public $volume;
private $model;

function volume_up(){
$this->volume++;
}


function __construct($m,$v){
$this->model=$m;
$this->volume=$v;
}

function getModel(){
return $this->model;

}

}





$obj=new Tv('xyz',10);
//$obj->model;//error can not access private property

echo $obj->getModel();// can access private property


class Plazma extends Tv {
/*function getModel(){
return $this->model;

}*/


function get_Display( ){
return $this->model='AXN';

}


}

$obj2=new Plazma('xyz',10);
//$obj->model;//error can not access private property

// $obj2->getModel();// can not access private property
echo $obj2->get_Display('ANX'); // but here private property is access why ?
?>

解决方案

volume;
private


model;

function volume_up(){


this->volume++;
}


function __construct(


这篇关于如何才能在子类中访问私有属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆