【发布时间】:2019-05-07 21:02:15
【问题描述】:
package my.examples.javaexam;
import accessTest.*;
public class DiffPackageSubClass extends Test {
public static void main(String[] args) {
Test t1 = new Test();
System.out.println(t1.a);
t1.display();
}
}
package accessTest;
public class Test {
public int a = 10;
protected int b = 120;
protected void display(){
System.out.println("Hello");
}
int c = 130;
private int d = 999;
}
你好。
我试图弄清楚访问修饰符“受保护”的工作原理。
我创建了两个包“my.examples.javaexam”和“accessTest”
据我所知,如果类在不同的包中但属于子类,则可以使用受保护的变量或方法。
所以我在不同的包中创建了 DiffPackageSubClass 类,但在 accessTest 包中继承了测试类。
但是,当我尝试执行代码时,它给了我一个错误,说 t1.display();无法执行,因为 'display()' 在 'accessTest.Test' 中具有受保护的访问权限
我不确定我的代码哪里出错了:(
我已经盯着代码看了一段时间,但仍然无法弄清楚为什么它会给我一个错误。
请帮助我理解这一点
【问题讨论】:
-
提示:所有这些基本的东西都在这里被问过很多次了。它们也记录在任何好书或教程中。并且:您应该在发布问题之前进行一些研究。
标签: java protected access-modifiers