将类限制为公共级别或默认级别访问的设计决策可能是什么?受保护的成员比默认成员更明显,那么为什么跳过受保护的?
编辑:我的意思是TOP级别课程答案 0 :(得分:4)
类的可见性级别与成员的可见性级别不同!
对于成员来说,子类化的整个想法发挥作用,因此“受保护”的概念。
但是对于课程,你要么在你的包装外可见,要么你不是。您的子类没有可见或不可见的概念。如果一个子类无法看到它的超类,那将是奇怪的,错误的。
此外,子包实际上并不像子类一样,所以再次,类上的“受保护”实际上不起作用。
我们在这里谈论顶级课程,对吧?会员班是一个不同的故事。答案 1 :(得分:0)
我们只能猜测具体的设计决策,但protected
是必要的,因此您的代码组件外部可以扩展您的组件。默认可见性只是在您自己的包中提供共享,而不会将其暴露给外部代码。
注意:我的回答仅适用于班级。
答案 2 :(得分:0)
this中的Quoto:
Modifier | Class | Package | Subclass | World
public | Y | Y | Y | Y
protected | Y | Y | Y | N
no modifier | Y | Y | N | N
private | Y | N | N | N
default和protected之间的主要区别是protected可以通过子类访问,但默认不能。 公共和默认之间的设计决策是,可以从其他包访问,但另一个不能。
比较两种比较两种不同的东西。
答案 3 :(得分:-1)
没有这样的设计决定。类可以是公共的,受保护的,包私有的(或默认的),也可以是私有的。
class TopLevelClass
{
public class PublicClass
{
}
protected class ProtectedClass
{
}
/*package private*/ class PackagePrivateClass
{
}
private class PrivateClass
{
}
}