首页> 基础笔记 >PHP基础学习 >面向对象 面向对象

PHP面向对象访问类型控制private 、protected、public(默认的)

作者:小萝卜 2019-09-01 浏览 1241

简介访问类型控制private 、protected、public(默认的)

访问类型控制private    、protected、public(默认的)

访问权限:
                           private           protected          public(默认的)
 --------------------------------------------------------------------------
  在同一类中:       可以                  可以                        可以
  类的子类中:        X                     可以                        可以
  其他外部类中:                                                   可以
 

实例1:

<?php
    //声明一个类作为父类使用,将它的成员都声明为私有的
    class MyClass {                     
        private $var1 = 100;            //声明一个私有的成员属性并给初值为100
        
        //声明一个成员方法使用private关键字设置为私有的
        private function printHello() { 
            echo "hello<br>";             //在方法中只有一条输出语句作为测试使用
        }
    }
    //声明一个MyClass类的子类试图访问父类中的私有成员
    class MyClass2 extends MyClass {    
        //在类中声明一个公有方法,访问父类中的私有成员
        function useProperty() {
            echo "输出从父类继承过来的成员属性值".$this->var1."<br>";    //访问父类中的私有属性
            $this->printHello();            //访问父类中的私有方法
        }
    }
    $subObj = new MyClass2();     //初始化出子类对象
    $subObj->useProperty();       //调用子类对象中的方法实现对父类私有成员的访问 结果报错


实例2:
 

<?php
    //声明一个类作为父类使用,将它的成员都声明为保护的
    class MyClass {                         
        protected $var1=100;               //声明一个保护的成员属性并给初值为100
        protected function printHello() {   //声明一个成员方法使用protected关键字设置为保护的
            echo "hello<br>";                  //在方法中只有一条输出语句作为测试使用
        }
    }
    //声明一个MyClass类的子类试图访问父类中的保护成员
    class MyClass2 extends MyClass {     
        //在类中声明一个公有方法,访问父类中的保护成员
        function useProperty() {
            echo "输出从父类继承过来的成员属性值".$this->var1."<br>";  //访问父类中受保护的属性
            $this->printHello();                 //访问父类中受保护的方法
        }
    }
    $subObj = new MyClass2();          //初始化出子类对象
    $subObj->useProperty();            //调用子类对象中的方法实现对父类保护的成员访问
    echo $subObj->var1;                //试图访问类中受保护的成员,结果出错

很赞哦! (0)

文章评论

    高端网站建设