我可以更改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. 函数的SQL Server访问修饰符
- 2. 类访问修饰符
- 3. javascript中的类和访问修饰符
- 4. 是否可以在ActionScript 3中更改继承的访问修饰符?
- 5. Java设计问题 - 类,函数,访问修饰符
- 6. 在java中访问'final'修饰符类
- 7. 如何更改用户控件的访问修饰符
- 8. 抽象类:单构造函数,访问修饰符?
- 9. 访问修饰符是否适用于静态类函数?
- 10. 访问修饰符可以放在接口中的方法声明中吗?
- 11. 我可以在IDL函数定义中使用const修饰符吗?
- 12. 类和访问修饰符在.NET
- 13. 类成员访问修饰符
- 14. python - 嵌套类访问修饰符
- 15. C++子类访问修饰符?
- 16. 更改GridView的CreateRow方法的访问修饰符
- 17. 在C#中,我可以隐藏/修改子类中的访问器吗?
- 18. Visual Studio 2010中的C++访问修饰符自动缩进慢慢地让我发疯 - 它可以改变吗?
- 19. 访问修饰符的Scala参数?
- 20. 是否有一个访问修饰符,它允许继承类修改c#中父类的成员?
- 21. 通过访问修饰符
- 22. 保护访问修饰符
- 23. 包访问(protected修饰符)
- 24. EventInfo访问修饰符
- 25. 更改ASP.NET控件的访问修饰符
- 26. 可以通过子类访问父类的属性数据吗?
- 27. 如何显示IntelliJ IDEA中的类的访问修饰符?
- 28. 方法有可能有双重访问修饰符吗?
- 29. Java访问修饰符 - 可用于子类和包的方法
- 30. 您可以在PowerShell中从PostCommandLookupAction访问/修改参数吗?
为什么标记为C++? – jcoder 2011-02-07 10:49:28