1 protected关键字
- 对于类的调用者来说,protected修饰的字段和方法是不能访问的;
- 对于类的子类和同一个包的其他类来说,protected修饰的字段和方法是可以访问的.
2 final关键字
final关键字可用于变量声明,不过一旦该变量被设定,就不可以再改变该变量的值;通常,由final定义的变量为常量.
定义为final的类不能被继承,如果希望一个类不被任何类继承,并且不允许其他人对这个类进行任何改动,那么可以将这个类设置为final形式.如果将某个类设置为final形式,则类中的所有方法都被隐式设置为final形式,但是final类中的成员变量可以被定义为final或非final形式.
3 注意点
- private:类内部能访问,类外部不能访问;
- 默认(包访问权限):类内部能访问,同一个包中的类可以访问,其他类不能访问;
- protected:类内部能访问,子类和同一个包中的类可以访问,其他类不能访问;
- public:类内部和类的调用者都能访问.
注意: 我们希望类要尽量做到"封装",即隐藏内部实现细节,只暴露出必要的信息给类的调用者;因此我们在使用的时候应该尽可能的使用比较严格的访问权限,能用private,就尽量不用public;另外还有一种简单粗暴的方法:将所有的字段设为private,将所有的方法设为public,不过这种方法是对访问权限的滥用.