在下面的代码中,Consumer类可以访问Parent类的受保护方法。由于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 package(实际上不建议使用),因此protected可以进行访问。顺便说一句:如果您尝试测试Java访问控制,则会忘记default access(default access= no修饰符= package private)。
protected
default package
default access
package private
private 另一方面,访问是指:从该特定类(以及仍然是主机类成员的非静态内部类)之外的任何地方进行访问。
private