虽然默认修饰符的可见性低于修饰符层次结构中受保护的可见性,但为什么可以将类设为默认值但不受保护。
答案 0 :(得分:1)
为什么一个类可以作为默认类而不是受保护类?
一个更明智的问题是,为什么Java只容忍公共顶级类之外的任何东西?
允许包私有顶级类的规定已经是最早版本的Java的破解,改进并被嵌套类取代,如果你可以protected
想。
答案 1 :(得分:0)
我希望你的意思是顶级课程(只能是公开课程或默认课程)。否则内部类可以有任何修饰符。
当我们说protected时,它意味着可以从包含受保护实体的类的所有子类访问它(可以是一个类)。
如果最外层的类受到保护,那么它定义了protected modifier的定义。
答案 2 :(得分:0)
如果您有一个protected
内部或嵌套类,则允许从外部类的相同包或子类内部进行访问或类似的操作。
如果你有一个受保护的顶级类,那么没有一个外部类可以让子类获得访问权限,所以受保护是没有意义的。
来自Ex.的示例它对于要保护的嵌套类型有效:
public class Foo {
protected static class Bar{}
}
这允许Foo
的子类访问Bar
。
答案 3 :(得分:0)
课程可以受到保护!我,内心阶级可以得到保护。
class A{
protected class C{
}
}
当我们谈论继承(扩展)时,Protedted进入了画面。这就是为什么我们不能将继承上下文之外的任何内容保护为受保护。!