java的四种访问权限
- public
- protected
- default(不写)
- private
对于这些访问权限基本上都了解,但是对于它们主键还是有一些差别,最近有点迷在看这些题的时候有点问题然后就去找,但是发现了好多都是一样的而且有的概念等很模糊,就有了这篇文章分享一下自己的心得。
首先,给出菜鸟教程上的一张图片
对于访问权限来说,public和private都基本上ok。public全都可以访问;private只能在本类中访问,子类都不行。
protected:当前类,同一包内和子类可以访问。首先要限定一下,必须是同包中的子类可以访问。
可以看到不同包中,尽管b是a的子类,也是无法访问基类实例后的方法的。转自菜鸟教程的两句话:
- 基类的 protected 成员是包内可见的,并且对子类可见;
- 若子类与基类不在同一包中,那么在子类中,子类实例可以访问其从基类继承而来的protected方法,而不能访问基类实例的protected方法。