Java的访问权限修饰符public、默认(包访问权限)、protected、private

时间:2021-12-29 06:21:12

该笔记主要记录我对于被Java的四个访问权限修饰符所修饰的域和方法在被直接使用(调用)、继承后的直接使用和继承后的方法覆盖三方面的认识:

第一,直接使用的情况:
  1.被public修饰的域和方法,不管在所属类所在的包还是在其他包,都可以被所属类或者所属类对象直接访问。
  2.默认访问权限(又叫包访问权限)修饰的域或方法,只能在所属类的包被直接访问,在其他包不能直接访问。其访问的范围就如它名称一样---包访问权限,只能在所属包内访问。
  3.被protected修饰的域或方法,其直接访问的范围与包访问权限的一样,基本没有差别。
  4.被private修饰的域或方法,只能在自己所属类才能被直接访问。而即使另外一个类与其同在一个包中,前者也不能直接访问。

第二,继承的使用(调用):[非private方法继承后可直接访问]
  1.父类中public修饰、默认访问权修饰和protected修饰的域或方法,可以直接在子类中直接被调用(使用)。
  2.父类中private修饰的域或方法,虽然被继承于子类,但是子类也不能直接访问,因为其对于子类是隐藏的。

第三,对于继承类对父类方法覆盖的情况:[非private方法继承后可被覆盖]
  1.父类中public修饰、默认访问权修饰和protected修饰的方法,在子类都可以被覆盖。
  2.父类中private修饰的方法,在子类不能被覆盖,因为private方法被自动认为是final方法(自行了解final方法),对子类是屏蔽的。