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 ?
}
}
请帮助我了解受保护的Java的具体工作
为什么?因为这就是Java编程语言的设计方式。没什么更多的了。
protected
可以从中访问的东西
这与C 不同,但是Java并非C ,因此它不一定以相同的方式工作。
问题内容: 通读“用Java思考”,我陷入了《内部类》一章的ex:6。 练习6:(2)在自己的程序包中使用至少一种方法创建一个接口。在单独的程序包中创建一个类。添加一个实现该接口的受保护的内部类。在第三个包中,从您的类继承,并在方法内部,返回受保护的内部类的对象,并在返回期间向上转换到接口。 这是我的代码: IOne.java 接口 COne.java 具有实现接口的受保护内部类的类 CTwo.j
问题内容: 在下面的代码中,Consumer类可以访问Parent类的受保护方法。由于Parent和Consumer类之间没有关系,这怎么可能。 谢谢 问题答案: 表示:相同的包或通过继承。由于您的课程都在(实际上不建议使用),因此可以进行访问。顺便说一句:如果您尝试测试Java访问控制,则会忘记(= no修饰符= )。 另一方面,访问是指:从该特定类(以及仍然是主机类成员的非静态内部类)之外的任
问题内容: 我在理解Java(或其背后的设计)中的受保护的访问修饰符时遇到了一些麻烦。我认为这意味着程序包访问和通过继承包含抽象成员的类的对象的访问。 我编写了以下示例代码。我看到,如果未注释,注释掉的行会产生编译错误。为什么我可以通过Second中的Second对象而不是Second中的First对象访问pro? 问题答案: 该网页链接@MadProgrammer给出了一个体面的解释: “ pr
问题内容: 我想了解以下示例中的情况(通过包从子类外部访问受保护的成员)。 我知道对于包外部的类,子类只能通过继承才能看到受保护的成员。 有两个包:和。 : : : 可以理解,中的方法可以访问,因为受保护的成员只能通过继承来访问。 我的问题是,为什么是方法,通过在基准访问时,工作正常的方法 ,但 将无法正常工作 通过访问时的参考? 问题答案: 该类中的代码被允许通过type的引用访问受保护的成员。
问题内容: 假设存在以下基类: 同样,在同一个程序包中,有一个继承的类: 然后,另一个包中有第三类: 最后,还有一个实现类,同样在另一个包中: 尽管继承,而且是,有以下错误: getHeight()在bg.svetlin.ui.controls.Control中已保护访问 我检查了我的进口货物是否正确。我正在使用NetBeans。 知道有什么问题吗?我认为即使孩子处于不同的包装中,孩子们也可以看到
问题内容: 这是受保护方法的文档: 我制作了这个小类来扩展scoreToSeq方法来自的类: 问题答案: (编辑:他们callmemorty的答案提供了在您的情况下避免该问题的实用建议。此答案提供了您为什么必须遵循该建议的原因,即,为什么语言是这样设计的。) 您只能访问与访问代码(或子类)具有相同类型的另一个对象的受保护成员,即使该成员是在超类型中 声明 的也是如此。 根据Java语言规范的第6.