假设你有一个包为范围的类:
class MyClass {
}
之间有什么区别
class MyClass {
public f() { ... }
}
和
class MyClass {
protected f() { ... }
}
和
class MyClass {
f() { ... }
}
由于该类是包作用域,因此使函数public
或protected
执行或添加的内容是什么?
我对包范围类的推理:
public
没有其他影响。protected
没有额外的效果,因为你必须保留在包裹内。private
具有限制效果,因为其他3个修饰符(包,public
,protected
)都是相同的。这是对的吗?
当类是包作用域时,我没有看到修改之间的区别。
答案 0 :(得分:3)
是。尽管public和protected在默认类中是多余的,但仍然私有对它们有一些意义。
正如评论中所指出的,在继承周期中,虽然不是直接的,间接的孩子可以通过其他公共课获得访问,因此它们在案件中派上用场。
否则,你已经决定将整个类作为包保护,显然内层级可访问性无论如何都没有意义。
简而言之,就可访问性而言,你选择了较高级别的较低级别。