为什么ant我们在java中保护顶级类?

问题描述 投票:0回答:1

如果我在packageA中有一个顶级类classA,并且我想让classB扩展classA,但我想在packageB中包含classB,而packageB中的任何其他类都无法访问classA(因此classA不能是公共的) ),这不是意味着 classA 必须可以被它自己的包以及其他包中的子包访问,因此 classA 不应该受到保护吗? 显然我们可以通过将 classB 移至 packageA 来解决这个问题,但是如果由于某种原因我们不能这样做怎么办?

好吧,我想我也必须填写这个,我尝试使 classA 受保护,但出现错误。

java oop inheritance package protected
1个回答
0
投票

你不能使用受保护的

另一种方法是使用密封,但两个类应该位于同一个包中

所以这是 A 类

package a;

sealed class A permits B {
}

B 类

package a;

public non-sealed/final class B extends A{
}

public sealed class B extends A permits Z{
}
© www.soinside.com 2019 - 2024. All rights reserved.