![]() |
1
47
那句话是假的。你可以 必须 在您描述的情况下更改访问修饰符。在其他情况下,不能更改访问修饰符。 请参阅本规范第10.6.4节,其中规定:
理由很简单。 你,阿萨德,有一个银行账户,银行账户。 你有房子。你租了一间房子给你最好的朋友查理。 查理有一个儿子,大卫,住在公寓里。 你有个儿子,埃尔罗伊,住在公寓里。 埃尔罗伊有个儿子,你的孙子,弗兰克,住在蒙古包里。 埃尔罗伊有个最好的朋友格雷格和他住在公寓里。 你允许你自己,任何住在房子里的人,以及你的任何后代使用你的银行账户。所以能进入银行账户的人是阿萨德、查理、埃尔罗伊和弗兰克。 大卫不能进去,因为他既不是你,也不是你的后裔,也不是住在家里。他是你室友的孩子是无关紧要的,他无法进入你的银行账户。 格雷格也不能进入你的银行账户。他不是你的后裔。他不住在房子里。他和你的后代住在一起,这一事实并没有赋予他和你的后代同样的权利。 现在我们来谈谈问题的关键。 Elroy不允许将您的银行帐户访问权限扩展到Greg。 你拥有那个银行账户,你说“我自己,我的后代和我的室友”。您的孩子无权将银行帐户的可访问性扩展到您最初设置的范围之外。 当埃尔罗伊描述他对银行账户的访问权限时,他只允许说“我允许我自己和我的后代访问这个”,因为这是你已经允许的。他不能说“我允许我自己、我的后代和公寓的其他居民使用银行账户”。 只是想说清楚:
|
![]() |
2
6
因为,虽然术语不同,但是
|
![]() |
3
3
受保护的内部是指受保护的或内部的。因此,如果通过在原始程序集外部重写,允许您将其标记为受保护的内部,则允许与重写器位于同一程序集中的其他类调用此方法。这实际上意味着原始父级的内部封装将被破坏。 |