有关protected访问权限的问题
package first;
public class TestQ {
public int a ;
protected int b;
}
package second;
import first.TestQ;
public class TestQ1 extends TestQ{
TestQ test = new TestQ();
int a1 = a;
int b1 = b;//int b1 = test.b;
}
为什么注释中的代码(通过父类对象来访问父类的protected属性)不可以,而直接访问就可以?
------解决方案--------------------我只知道protected 是不同包的非子类不可见 其他不知
------解决方案--------------------protected 不能通过类对象直接访问
------解决方案--------------------楼上正解,就像是private一样,只能是方法互相访问,但是除了super.()除外哦
------解决方案--------------------Java 是这样规定的,无条件接受
------解决方案--------------------protected不能跨包访问,改为同一个包就对了。
------解决方案--------------------数据field private
------解决方案--------------------Protected关键字声明的变量,不同包的类是不能访问的.
------解决方案--------------------zzwh_0() 举的那个例子,两个类在同一个包下(都是缺省包).
所以还是满足:
Protected声明的变量不同包的类对象不能访问的
~~~
------解决方案--------------------同一包下,通过类名直接可以访问的成员变量和成员方法 要用 static 修饰.