26 为什么JAVA中的外部类不用private或者protected修饰

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值