php父类(parent)

php parent在面向对象语法中代表“父类”,本质上就是代表父类这个“类”,而不是父类的“对象”,其使用方式为“parent::属性或方法;”。

关键字含义使用位置使用示例
parent:代表父类(这个类)肯定在一个方法中parent::属性或方法;
self:代表当前其所在的类肯定在一个方法中self::静态属性或方法
$this:代表调用当前方法的对象肯定在一个方法中$this->实例属性或方法;
<?php
  class Person{
      protected $name;
      protected $sex;
      protected $age;

    function __construct($name="", $sex="男", $age=1){
        $this->name = $name;
        $this->sex = $sex;
        $this->age = $age;
    }

    function say(){
        echo "我的名字: ".$this->name.", 性别: ".$this->sex,", 年龄: ".$this->age;
    }
  }  
  
  class Student extends Person{
      private $school; //在学生类中添加一个所在学校的school的成员属性。

      //覆盖父类中的构造方法,在参数列表内加一个学校属性,用来创建对象并初始化成员属性
      function __construct($name="", $sex="男", $age=1, $school=""){
        parent::__construct($name, $sex, $age);
        $this->school = $school;
      }

      function stydy(){
          echo $this-name."正在".$this->school."学习";
      }
    
      function say(){
        parent::say();  //调用父类中被本方法覆盖掉的方法
        echo "在".$this->school."学校上学";
      }
  }

  $student = new Student("张三", "女", "23", "edu");//创建一个学生对象,并传给一个学校名称参数
  $student->say();//调用学生类中覆盖父类的说话方法
  /**结果是: 我的名字: 张三, 性别: 女, 年龄: 23在edu学校上学 */
  //注意:在子类中重写的方法访问权限一定不能低于父类被覆盖的放的的访问权限。
  //例如父类中方法的访问权限是protected,那么子类中重写的方法的访问权限就要是protected或者public

?>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值