1 不用private修饰
原因:
private修饰的变量或者方法都只能在本类中可见。
假设private可以修饰类,也就是说任何类都无法再访问到这个类。
不就相当于,在一个包里面,只有一个类,那个类是(default)的。
所以,没有必要再去用一个private修饰符。
2 不用protected修饰符
protected修饰的类或者方法只能在本包或者子类中可以访问。
假设有一个不同包的子类要访问父类中的某个protected修饰的变量。
第一步是先要把这个类导入进来。
假设有一个类是可以用protected修饰的。
那我们第一步导入类的动作就有问题了:
如果可以导入。那protected修饰的类就变成不同包的类可以访问了。
如果不能导入。那我子类又怎么去访问呢?那和用(default) 又有啥区别
有人说,你傻啊,可以导入的时候判断一下啊。是子类就可以导入,不是子类就不能导入。
但是我们知道,java编译器执行的时候,第一步是去执行 import语句。
所以,这就是为啥不能用protected去修饰的原因。
除非,java有一天支持导入包的概念,但是现在没有。最多就是导入包下面的所有类。
例如 import com.csdn.util.*
注意
(default)表示啥修饰也不写,并不是 default class A,而是 class A