public和private基本没问题,主要是默认的和protected之间的区别
同一包中默认的和protected一样,所以来看看不同包的情况
看下如下代码,两个类位于不同包:
public class Base {
int i = 0;
}
public class Extends extends Base {
public void test(){
Extends e = new Extends();
Base b = new Base();
//e.i = 1;//编译无法通过
//b.i = 1;//编译无法通过 }
}
加上protected修饰符:
public class Base {
protected int i = 0; }
public class Extends extends Base {
public void test(){
Extends e = new Extends();
Base b = new Base();
e.i = 1;
//b.i = 1;//编译无法通过 }
}