PHP中this,self,parent的区别之三parent篇

首先,我们明确,parent是指向父类的指针,一般我们使用parent来调用父类的构造函数。实例如下:
<?php
 //建立基类Animal
 class Animal
 {
    public $name; //基类的属性,名字$name

    //基类的构造函数,初始化赋值
    public function __construct( $name )
    {
         $this->name = $name;
    }
 }

 //定义派生类Person 继承自Animal类
 class Person extends Animal
 {
    public$personSex;       //对于派生类,新定义了属性$personSex性别、$personAge年龄
    public $personAge;

    //派生类的构造函数
    function __construct( $personSex, $personAge )
    {
         parent::__construct( "PBPHome");    //使用parent调用了父类的构造函数 语句①
         $this->personSex = $personSex;
         $this->personAge = $personAge;
    }

    //派生类的成员函数,用于打印,格式:名字 is name,age is 年龄
    function printPerson()
    {
         print( $this->name. " is ".$this->personSex. ",age is ".$this->personAge );
     }
 }

 //实例化Person对象
 $personObject = new Person( "male", "21");

 //执行打印
 $personObject->printPerson();//输出结果:PBPHome is male,age is 21

 ?>
里面同样含有this的用法,大家自己分析。我们注意这么个细节:成员属性都是public(公有属性和方法,类内部和外部的代码均可访问)的,特别是父类的,这是为了供继承类通过this来访问。关键点在语句①:parent::__construct( "heiyeluren"),这时候我们就使用parent来调用父类的构造函数进行对父类的初始化,这样,继承类的对象就都给赋值了name为PBPHome。我们可以测试下,再实例化一个对象$personObject1,执行打印后name仍然是PBPHome。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
双存储结构是一种树的存储方式,它通过在每个节点增加一个指向其父节点的指针来表示树的结构。在这种存储方式下,每个节点都保存了一个指向其父节点的指针,因此可以方便地从子节点访问到其父节点。 在双亲存储结构,对于每个节点来说,它的父节点的指针就是它的parent属性。因此,当我们创建一个节点时,可以将该节点的parent属性设置为自身,表示该节点是根节点。当我们插入一个节点时,可以将该节点的parent属性设置为插入节点的父节点,以建立父子关系。 例如,假设我们要创建一棵包含5个节点的树,可以先创建根节点,然后逐个插入子节点,并设置每个节点的parent属性。具体操作如下: ``` class TreeNode: def __init__(self, val=None): self.val = val self.parent = self # 将根节点的parent属性设置为自身 self.children = [] root = TreeNode(1) node2 = TreeNode(2) node3 = TreeNode(3) node4 = TreeNode(4) node5 = TreeNode(5) root.children = [node2, node3] node2.parent = root # 设置node2的父节点为root node3.parent = root # 设置node3的父节点为root node2.children = [node4] node3.children = [node5] node4.parent = node2 # 设置node4的父节点为node2 node5.parent = node3 # 设置node5的父节点为node3 ``` 在上面的代码,我们先创建了一个根节点root,并将其parent属性设置为自身。然后依次创建节点2到节点5,并设置它们的parent属性。最后,我们通过将子节点添加到父节点的children列表来建立父子关系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值