public、protected、default、private这几个修饰符经常见,没啥好说的,但对我而言不容易记住,至少记得不精确;此处打几个比方帮助自己记得精确点。
private:私人的,适用于“本类”
这像通常意义上的伤残补助,伤残补助依附伤残人而存在,伤残人死亡后就没了,伤残补助不能作为离婚时共同财产跟配偶进行分割,也不能让子女继承;
------------------------------------------------------------------------------------------
default:默认的,适用于“本类、本包类(子类、非子类)”,不同包中的子类、非子类不能访问;
这像农村分地,户口所在地就是所在的包,你儿子户口若在你们村,村里肯定得给你儿子分农耕地;你媳妇的户口要转移到你们村,也给分耕地;其他人的户口转到你们村,村里也是给分地的;而你户口在外地的儿子不分地,其他户口不在你们村的也不分地;
----------------------------------------------------------------------------------------------------------
protect:受保护的,适用于“本类、本包、所有子类”
这就像你们村里给发的拆迁补助,里面有你一份,有你们同村的人一份,你儿子也可以继承你的财产,不管你儿子户口是否在你们村;
-------------------------------------------------------------------------------------------
public:这个谁都能使用;比如村晚谁都能看;
-------------------------------------------------------------------------------------------
类内部 | 本包 | 外部包 子类 | 外部包 非子类 | |
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
default | √ | √ | × | × |
private | √ | × | × | × |