返回信息流public class ClassC extends ClassA {
void method()
{
ClassA a=new ClassA();//1
ClassC c=new ClassC();//2
c.var2=10;//3
System.out.println(a.var2);//4
System.out.println(var1);//5
System.out.println(var2);//6
}
其中在ClassA中有:public int var1;
protected int var2;
为啥上述语句单单第四句编译不通过,说var2是不可见....其他几句一点问题没有!!!!
小弟刚开始学JAVA,表示快被这种小问题虐疯了。。真心感觉JAVA咋这么琐碎,小问题找不到统一的解答,连书上都说的模棱两可,一会这样,一会那样,有种死记硬背的感觉!!大神们,帮帮忙。。刚开始学有必要研究JVM吗
这是一条镜像帖。来源:北邮人论坛 / java / #27423同步于 2013/10/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
咋感觉JAVA无章可循啊,看下面一个疑问????
z843259180
2013/10/17镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
class A是定义在另一个package内么?
【 在 z843259180 的大作中提到: 】
: public class ClassC extends ClassA {
: void method()
: {
: ...................
ClassA中的var2是一个protect变量,继承函数或者其他函数无法直接访问,可以在ClassA中设置getVar2()方法,通过a.getVar2()返回var2。