为什么不能保护类,因为它可以在java中具有默认修饰符

时间:2013-12-17 11:16:53

标签: java default protected modifiers

虽然默认修饰符的可见性低于修饰符层次结构中受保护的可见性,但为什么可以将类设为默认值但不受保护。

4 个答案:

答案 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进入了画面。这就是为什么我们不能将继承上下文之外的任何内容保护为受保护。!