在下面的代码中,Consumer类可以访问Parent类的protected方法。由于Parent和Consumer类之间没有关系,怎么可能呢?请解释
class Parent {
public void method1(){
System.out.println("PUBLIC METHOD");
}
private void method2(){
System.out.println("PRIVATE METHOD");
}
protected void method3(){
System.out.println("PROTECTED METHOD");
}
}
public class Consumer {
public static void main(String[] args){
Parent parentObj = new Parent();
parentObj.method1();
//parentObj.method2();
parentObj.method3();
}
}
谢谢
最佳答案
protected
表示:同一个包或通过继承。由于您的类都在 default 包
中(在现实生活中不推荐),protected
启用访问。顺便说一句:如果你尝试测试 java 访问控制,你忘记了 default access
(default access
= no modifier = package private
)。
private
访问意味着:除了这个特定的类(以及仍然是宿主类的成员的非静态内部类)之外的任何地方都可以访问。
关于java protected 方法可访问性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3058976/