为什么在java中,受保护的访问可以在同一个包中进行,而无需继承?
为什么在java中,受保护的访问可以在同一个包中进行,而无需继承?,java,protected,Java,Protected,请帮助我了解Java中protected的具体工作为什么?因为Java编程语言就是这样设计的。没什么了 受保护的东西可以从 班级本身 同一包中的类(不管它们是否为子类) 子类(不管它们是否在同一个包中) 这和C++不同,但java不是C++,所以它不一定是同样的工作。请帮助我知道JavaBeCube中的特定工作,这只是java编程语言是如何设计的。詹姆斯·高斯林还没有加入。等他登记。然后,只有你会得到确切的原因。考虑一下:如果它不这样工作,你会如何在同一个包中建立一组紧密耦合的类,也将一些内
请帮助我了解Java中protected的具体工作为什么?因为Java编程语言就是这样设计的。没什么了 受保护的东西可以从
- 班级本身
- 同一包中的类(不管它们是否为子类)
- 子类(不管它们是否在同一个包中)
这和C++不同,但java不是C++,所以它不一定是同样的工作。
请帮助我知道JavaBeCube中的特定工作,这只是java编程语言是如何设计的。詹姆斯·高斯林还没有加入。等他登记。然后,只有你会得到确切的原因。考虑一下:如果它不这样工作,你会如何在同一个包中建立一组紧密耦合的类,也将一些内部构件导出到外部子类?您需要更多的修饰符,这使得语言变得不必要的复杂。@aioobe对我来说主要的一点是“public”和“protected”都表示公共API——API的某些部分是为扩展库的类而设计的。这样看来,如果您不能将某些内容导出到包“friends”而不将其变成公共API,那就太糟糕了。谢谢所以在Java中,如果我们有on-packet,我们就不能让子类访问空间字段,也不能阻止同一个包中的其他类访问它
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
public class a {
protected int x;
}
public class b {
b() {
a A=new a();
A.x=9;//why we can access this field ?
}
}