现在的位置: 首页 > 综合 > 正文

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

2013年12月10日 ⁄ 综合 ⁄ 共 763字 ⁄ 字号 评论关闭

注意调用父类方法的方式: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()
?>

抱歉!评论已关闭.