PHP访问修饰符public , private ,protected 访问权限实例详解

//PHP访问修饰符public , private ,protected 访问权限实例详解
//类内部:定义类的开始到结束之间,类的实例对象已经是类外部。
//定义:public 类内外部均可访问并且可继承给子类,private只有本类内部可以访问,子类和类实例对象均不能在外面直接访问,protected本类和子类在类内部都能访问类外不能访问。

class A{
public $Apublic='Apublic';
private $Aprivate='Aprivate';//(Aprivate只能在A类内部使用不能继承给子类;)
protected  $Aprotected='Aprotected';
}
class B extends A{ //extends 是继承扩展的意思,可以理解为在原有基础上继续发展,请理解记忆extend这个单词并带s。扩展是由上到下的,父类不会反过来自动继承子类功能。继承是单向的。
public $Bpublic = 'Bpublic';
private $Bprivate = 'Bprivate';
protected $Bprotected ='Bprotected';
public function show()
{
echo $this->Bprotected;//正确 protected可以在本类内部访问
}
public function showA()
{
echo $this ->Aprotected;//正确 Aprotected可以被子类成功继承;
}
public function showC()
{
echo $this ->Bprivate;//正确 private可以在类内部访问;
}
public function showD()
{
echo $this ->Aprivate;//访问不到,但是不是错误相当于B类重新定义了一个public访问权限的空值的变量Aprivate与下面是等价的,下面多了个赋值5 ;
}
public function showE()
{
echo $this ->xxx = 5;
}
}

$b = new B();
echo $b -> Apublic;//正确打印Apublic, 说明被成功继承过来。
//echo $b -> Aprivate;//error 访问不到无效,因为A类private只能在A类内部访问,不继承给子类
//echo $b -> Bprivate;//error ,因为private只能在类内部访问
//echo $b -> Bprotected;//error ,因为protected只能在类定义内部访问,对象已经是类外部。
echo $b -> show(); //打印结果Bprotected
echo $b -> showA();//打印结果Aprotected
echo $b -> showC();//打印结果Bprivate
echo $b -> showD();//打印结果空的,但是这个变量Aprivate跟A类的Aprivate是没有任何关系的。
echo $b -> showE();//打印结果5
echo $b -> xxx;//打印结果5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值