Java 中的访问修饰符
Java 面向对象的基本思想之一是封装细节并且公开接口,所以 Java 采用访问控制修饰符来控制类、方法以及变量的访问权限。
访问修饰符分为四种级别:
(1)public: 用 public 修饰的类、变量以及方法,包内和包外的任何类(包括子类和普通类)均可以访问;
(2)protected: 用 protected 修饰的类、变量以及方法,包内的任何类及包外那些继承了该类的子类才能访问。protected 重点突出继承;
(3)default: 如果一个类、变量以及方法没有用任何修饰符,则其访问权限为default(默认访问权限)。默认访问权限的类、变量以及方法,包内的任何类(包括继承了此类的子类)都可以访问它,而包外的任何类都不能访问它(包括包外继承了此类的子类)。default重点突出包;
(4)private: 用 private 修饰的类、变量以及方法,只有本类可以访问,而包内包外的其它任何类都不能访问它。
总结为下表:(Y 表示 Yes,空的位置是 No)
不同情形 | public | protected | default | private |
---|---|---|---|---|
访问同包同类 | Y | Y | Y | Y |
访问同包不同类 | Y | Y | Y | |
访问同包不同类的继承 | Y | Y | Y | |
访问不同包的继承 | Y | Y | ||
访问不同包没有任何关系的类 | Y |