繁体   English   中英

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

[英]PHP inheritance - Parent function with child attribute

使用 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";
  }
}

然后我创建一个员工实例并调用 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";
  }
}

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

class Employee extends Resource {
  protected $resourceIdentifier;

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

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

回答:

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

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

答: 从父类类型字段访问子类方法

试着看看这个

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM