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;//编译无法通过} }