java的访问修修饰符有四种,分别是:public 、protected、friendly ,private ;
这四种修饰符,访问级别如下:
当前类 子类 同一个包中类 其它包中类
public √ √ √ √
protected √ √ √ ×
friendly √ × √ ×
private √ × × ×
默认不写是:friendly
上面都是网上的答案;
但是我本人实践过 ,如果父类中的某个变量 ,前面没有写访问修饰符。也就是friendly ,那么 子类照样可以调用。可以用this.变量名;super.变量名;子类对象.变量名; 所以我总结出:
当前类 子类 同一个包中类 其它包中类
public √ √ √ √
protected √ √ √ ×
friendly √ √ √ ×
private √ × × ×
欢迎大家积极讨论此问题;
因为父子类在同一个包中,子类当然可以看到父类为默认访问修饰符的变量
[color=red] friendly 缺省—在同一个包中可见,子类不在一个包中,子类中也不可见 [/color]
[color=indigo]应该这样:[/color]
修饰符 同一个类 同一个包 子类 其他包中的类
public √ √ √ √
protected √ √ √
friendly √ √
private √