[英]Can I change the access modifiers of any parent function in Child class?
我可以更改Child類中任何父函數的訪問修飾符嗎?
子類別只能“降低”可見度,例如
class ParentClass
{
protected function foo() {}
}
可
class ChildClass extends ParentClass
{
public function foo() {}
}
但不是
class ChildClass extends ParentClass
{
private function foo() {}
}
除此之外,您還可以使用Reflection API在運行時更改可見性:
盡管您應該問自己為什么要這么做。 通常,父類向其子對象隱藏方法或屬性是出於某種原因。
不,這是不可能的。 而且不僅限於PHP。
我自己的測試表明,子類可以提高可見性,但不能降低可見度。
例如,假設父類的成員變量聲明為private
。 然后,子類可以定義與private
, protected, or
public相同的成員變量。
同樣,如果將父成員聲明為protected
,則子代可以將成員聲明為protected
或public
。
最后,如果父母宣布成員為public
,那么該成員必須在所有孩子中都是public
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.