PHP继承-具有child属性的父函数

时间:2019-01-26 17:45:52

标签: php inheritance

使用PHP 5.4-公司将不会升级,因为它将破坏现有代码。抱歉。

说我有一个课程Resource

class Resource {
  private $resourceIdentifier;

  public function __construct() {
    $this->resourceIdentifier = "ResourceId";
  }

  public function getIdentifier() {
    return $this->resourceIdentifier;
  }
}

然后,该班有一个孩子:

class Employee extends Resource {
  public function __construct() {
    $this->resourceIdentifier = "EmployeeId";
  }
}

然后我创建一个employee实例并调用getIdentifier()

$emp = new Employee();
echo $emp->getIdentifier();

该函数将从父级或子级返回$resourceIdentifier吗?

最重要的是,如果我没有在父母中定义$resourceIdentifier而在孩子中定义了{},会发生什么?

class Resource {
  public function getIdentifier() {
    return $this->resourceIdentifier;
  }
}

class Employee extends Resource {
  private $resourceIdentifier;

  public function __construct() {
    $this->resourceIdentifier = "EmployeeId";
  }
}

2 个答案:

答案 0 :(得分:0)

如果$resourceIdentifier属性是私有的,则父类无法访问它。您需要改为对其进行保护:

class Employee extends Resource {
  protected $resourceIdentifier;

  public function __construct() {
    $this->resourceIdentifier = "EmployeeId";
  }
}

答案 1 :(得分:0)

最重要的是,如果我没有在父级中定义$ resourceIdentifier,但在子级中定义了$ resourceIdentifier,会发生什么呢?

  

答案:

     

如果您定义它具有父项,并在子项中调用它,则您将遵循   继承的概念,因此您可以使用相同的$ resourceIdentifier   对于许多孩子来说。

该函数将从父级或子级返回$ resourceIdentifier吗?

  

答案:   Accessing child class method from parent-class-typed field

尝试查看此内容