Java 测试所有级别的访问修改器控制

Java 测试所有级别的访问修改器控制,java,Java,我正在实现访问方法和变量的所有不同类型的访问,这些方法和变量的访问方式各不相同。我为每个级别的控件提供了一个包,其中包含一个包含方法和变量的类、一个子类和一个包含main的类。我还有一个main包,其中包含一个main-it类,用于测试类及其子类在自己包之外的访问。我用包含公共方法和变量的类的包实现了这种做法,但在访问“来自同一包中的子类”和“来自包外的子类”(这将是包含前面提到的带有main的类的主包)时遇到了困难。我的问题是,当子类及其超类不能是公共的,而允许主包访问它时,我如何让子类可以从

我正在实现访问方法和变量的所有不同类型的访问,这些方法和变量的访问方式各不相同。我为每个级别的控件提供了一个包,其中包含一个包含方法和变量的类、一个子类和一个包含main的类。我还有一个main包,其中包含一个main-it类,用于测试类及其子类在自己包之外的访问。我用包含公共方法和变量的类的包实现了这种做法,但在访问“来自同一包中的子类”和“来自包外的子类”(这将是包含前面提到的带有main的类的主包)时遇到了困难。我的问题是,当子类及其超类不能是公共的,而允许主包访问它时,我如何让子类可以从另一个包访问它?

对于顶级类,只有两个访问级别可用:
public
和package private(无修改器)。这些是对顶级课程有意义的唯一可能性:

  • private
    没有意义,因为只有它才能看到的类有什么用
  • protected
    与包private相同,只是扩展类也具有可见性。这是一个只对顶级班级成员有意义的概念

您为什么要这样做?你想达到什么目标?不要去寻找语言的具体情况,试着对这些特性进行一些实际的使用,看看它在实际情况下是如何工作的。我已经为java编程多年了,从来没有想过太多关于可视性的问题:一般来说,让事物尽可能地可视,但不再可视。等等,你为什么再次问这个问题可能重复的我不明白当一个子类在同一个包中也必须是公共的,并且如果我有一个包public1 public class public1{public void foo(){},那么你怎么能访问另一个包中的一个public class*的子类来访问变量和方法呢如何将另一个公共类作为子类用于调用另一个包中的方法?