Accessing Parent Class' property from child

后端 未结 2 1547
遥遥无期
遥遥无期 2021-01-08 00:46

See the following example (PHP)

class Parent
{ 
  protected $_property;
  protected $_anotherP;

  public function __construct($var)
  {
    $this->_prope         


        
2条回答
  •  灰色年华
    2021-01-08 01:18

    As your Child class is extending your Parent class, every properties and methods that are either public or protected in the Parent class will be seen by the Child class as if they were defined in the Child class -- and the other way arround.

    When the Child class extends the Parent class, it can be seen as "Child is a Parent" -- which means the Child has the properties of the Parent, unless it redefines those another way.

    (BTW, note that "parent" is a reserved keyword, in PHP -- which means you can't name a class with that name)


    Here's a quick example of a "parent" class :

    class MyParent {
        protected $data;
        public function __construct() {
            $this->someMethodInTheParentClass();
        }
        protected function someMethodInTheParentClass() {
            $this->data = 123456;
        }
    }
    

    And it's "child" class :

    class Child extends MyParent {
        public function __construct() {
            parent::__construct();
        }
        public function getData() {
            return $this->data; // will return the $data property 
                                // that's defined in the MyParent class
        }
    }
    

    That can be used this way :

    $a = new Child();
    var_dump($a->getData());
    

    And you'll get as output :

    int 123456
    

    Which means the $data property, defined in the MyParent class, and initialized in a method of that same MyParent class, is accessible by the Child class as if it were its own.


    To make things simple : as the Child "is a" MyParent, it doesn't need to keep a pointer to... itself ;-)

提交回复
热议问题