我可以更改Child類中任何父函數的訪問修飾符嗎?我可以更改Child類中任何父函數的訪問修飾符嗎?
回答
兒童班只能「放鬆」視野,
class ParentClass
{
protected function foo() {}
}
可以
class ChildClass extends ParentClass
{
public function foo() {}
}
但不
class ChildClass extends ParentClass
{
private function foo() {}
}
除此之外,你可以使用反射API在運行時更改可見性:
雖然你應該問自己,爲什麼你想這樣做。由於某種原因,通常會從子項中隱藏方法或屬性的父類會這樣做。
我不想那樣做,但是這個問題出現在我的腦海裏?爲了好奇,我想知道答案。 – Gaurav 2011-02-07 10:17:59
不,這是不可能的。而不僅僅是在PHP中。
你能給我任何理由,爲什麼這樣? – Gaurav 2011-02-07 10:14:11
在PHP中,接受的答案是正確的。如果將其更改爲更寬鬆的訪問修飾符,您可以更改它:protected => public。 – 2018-02-21 10:15:53
我自己的測試表明,兒童班可以提高可見度,但不會降低它。
例如,假設父類具有聲明爲private
的成員變量。然後,子類可以定義與private
,protected, or
public`相同的成員變量。
同樣,如果父母成員被宣佈爲protected
,那麼孩子可以聲明該成員爲protected
或public
。
最後,如果父母聲明成員爲public
,那麼該成員在所有子女中必須爲public
。
- 1. C#:Child類可以限制對父類方法的訪問嗎?
- 2. 我可以從Scala中的超類繼承訪問修飾符嗎?
- 3. 函數的SQL Server訪問修飾符
- 4. 類訪問修飾符
- 5. javascript中的類和訪問修飾符
- 6. 是否可以在ActionScript 3中更改繼承的訪問修飾符?
- 7. Java設計問題 - 類,函數,訪問修飾符
- 8. 在java中訪問'final'修飾符類
- 9. 訪問修飾符的內部類
- 10. const函數,但我可以「修改」類
- 11. 如何ReSharper的(R#)更改默認訪問修飾符內部
- 12. 如何更改用戶控件的訪問修飾符
- 13. 更改設計器文件中的訪問修飾符
- 14. 抽象類:單構造函數,訪問修飾符?
- 15. 訪問修飾符是否適用於靜態類函數?
- 16. 訪問修飾符可以放在接口中的方法聲明中嗎?
- 17. 我可以在IDL函數定義中使用const修飾符嗎?
- 18. 我可以在ActionScript-3中更改類的函數引用嗎?
- 19. 成員類訪問修飾符
- 20. C++子類訪問修飾符?
- 21. 類和訪問修飾符在.NET
- 22. python - 嵌套類訪問修飾符
- 23. 類嵌套和訪問修飾符
- 24. 類成員訪問修飾符
- 25. 在C#中,我可以隱藏/修改子類中的訪問器嗎?
- 26. Visual Studio 2010中的C++訪問修飾符自動縮進慢慢地讓我發瘋 - 它可以改變嗎?
- 27. 更改GridView的CreateRow方法的訪問修飾符
- 28. 訪問修飾符的Scala參數?
- 29. Delphi訪問修飾符
- 30. 內部訪問修飾符
爲什麼標記爲C++? – jcoder 2011-02-07 10:49:28