这是我的班级层次结构:
readonly class ParentClass {
public function __construct(
public string $lastName
){
}
}
readonly class ChildClass extends ParentClass {
public function __construct(
public string $firstName,
public string $lastName
){
parent::__construct($lastName);
}
}
$child = new ChildClass('John', 'Doe');
我收到一条异常消息“无法修改只读属性 ParentClass::$lastName”。
我读过很多文章或 Stackoverflow 上的问题的答案,但没有人谈论这个案例,或者我没有发现。
我为什么会收到那个错误?
您正在尝试重新定义子类中的属性。您不能这样做。
仅在父类中定义属性。