java中无修饰子类可以_为什么在Java中没有子类可见性修饰符?

不止一次,我发现自己渴望一个可变的可见性,这是​​不可能在Java。我想要某些成员在他们自己的类和任何子类中可见,而不是在包的其余部分或世界其他地方。换句话说,我想这样:

Modifier Class Package Subclass World

sub-class Y N Y N

然而,Java的设计师只给了我this:

Modifier Class Package Subclass World

public Y Y Y Y

protected Y Y Y N

no modifier Y Y N N

private Y N N N

典型的情况下,当我想要这样的东西是创建一个抽象类。有时我发现抽象父需要访问某些成员,但具体的孩子也是如此。我可以通过使成员受到保护给他们这个访问,但打开了对其余的包的可访问性,当我真的不想。

要完全清楚,我知道这样的修改器是不可能在Java。我的问题是为什么这样的修饰符不包括在Java?它似乎(对我)是一个比保护或默认更自然的可见性级别。是否原因只是沿着它的线不是足够重要被包括,或更多与我没有考虑的可能的副作用相关?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值