php面向对象编程之public,private,protected的区别

注意调用父类方法的方式:parent: :a(  ),因为父类没有实例化,所以直接用类而非对象调用方法的方式用两个冒号的形式“::”。

public 表示全局,类内部,外部,子类都可以访问,所谓外部可以访问就是新实例化的对象可以访问,因为实例化的过程发生于类的外部。
private表示私有的,只有本类内部可以使用;
protected表示受保护的,只有本类或子类或父类中可以访问,本类和子类的实例都不能访问。

    <?
//父类
class father{
 public function a(  ){
  echo "function a";
 }
 private function b(  ){
  echo "function b";
 }
 protected function c(  ){
  echo "function c";
 }
}


//子类
class child extends father{
  function d(  ){
    parent :: a(  );   //调用父类的a方法
  }
  function e(  ){
    parent::c(  ); //调用父类的c方法
  }
 function f(  ){
    parent::b(  ); //调用父类的b方法
  }
}

$father=new father();
$father->a();
$father->b(); //显示错误 外部无法调用私有的方法 Call to protected method father::b()
$father->c(); //显示错误 外部无法调用受保护的方法Call to private method father::c()

$chlid=new child();
$chlid->d();
$chlid->e();
$chlid->f();//显示错误 无法调用父类private的方法 Call to private method father::b()
?>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值