Java访问权限修饰符(—)-- 回顾
一、引子 |
今天刷题碰到了这样的一道继承题,有点懵逼最前学习的内容有些生疏和遗忘了。现在来回顾回顾这一类问题,顺带把访问权限修饰符也复习下。这道题是java中的继承具有传递性,子类可以无条件向父类转型。
二、正题 |
首先来看一下java中的权限都有哪些,天天都能接触到的莫过于public、private 还有相对于少一些的protected、default。使用它们的情况,必须要针对类和变量的功能性来使用。比如在开发网站项目的时候会使用到pojo,其中的变量都是需要使用private修饰词来控制权限访问的。因为private 的访问权限值控制在类中,外部的任何地方都无权限访问。设想一下把private 都换成public,在子类任何包中也可以调用修改这些变量。这就造成了程序的不安全性,这时就有封装这一特性来解决这个权限访问问题。在向外提供getxxx() 和setxxx()方法来对外使用pojo 中的变量,这也是java中封装性给程序安全做的工作。下面来看下所有的访问权限修饰符的控制范围:
类 | 包 | 子类 | 其他包 | |
public | √ | √ | √ | √ |
protected | √ | √ | √ | ✘ |
default | √ | √ | ✘ | ✘ |
private | √ | ✘ | ✘ | ✘ |