PHP面向对象(一)权限修饰符

权限修饰符

作用:控制访问权限,修饰属性,方法

权限控制符:public(公开的)、protected(受保护的)、private(私有的)

区别:

1、public 类内、类外都可以访问
2、protected 类内、子类的类内可以访问
3、private 只有当前类的类内可以访问

 关于继承:

1、子类可以继承父类的私有属性,不能继承私有方法

2、子类继承自父类的属性方法,子类必须和父类的修饰相同,或者更松弛

  1. 父类为public,则子类必须为public
  2. 父类为protected,子类需为public或protected
  3. 父类为private,则子类可以public、protected、private

实践:

编写父类Father和子类Son

<?php

class Father{

    public $name;            //姓名
    protected $salary;       //薪资
    private $money;          //存款
    
    public function __construct($name, $salary, $money)
    {
        $this->name = $name;
        $this->salary = $salary;
        $this->money = $money;
    }

    public function getName()
    {
        return $this->name;
    }

    protected function getSalary()
    {
        return $this->salary;
    }

    private function getMoney()
    {
        return $this->money;
    }

    public function getInfo()
    {
        echo $this->name . "的薪资一个月" . $this->salary;
        echo "存款" . $this->money;
        echo "<br/>";
    }

}


class Son extends Father{
    //private $salary;    //控制权限必须比父类更松弛,可以声明为protected或public
    private $age;
    public function getFatherInfo()
    {
        //子类不能调用父类的属性,可以调用父类的方法获取属性
        parent::getName();
        parent::getSalary();
        //parent::getMoney();   //子类不能调用父类的私有方法
        //$this->getMoney();    //子类不能继承父类的私有方法,私有属性可以继承(通过访问继承的公开方法,即可访问到私有属性)
    }
}


//父类
$father = new Father('小明', 20000, 15000);
//类内public、protected、private属性都可以访问
$father->getInfo();
//类外只能访问public
echo $father->name;
//    echo $father->salary;    //受保护属性类外不能访问
//    echo $father->money;     //私有属性类外不能访问

//子类继承父类
$son = new Son('张三', 10000, 5000);
//类内public、protected、private属性都可以访问
$son->getInfo();
//类外只能访问public
echo $son->name;
//    echo $son->salary;    //受保护属性类外不能访问
//    echo $son->money;     //私有属性类外不能访问

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值