子类是否始终与Java中的超类在同一个包中?

Yel*_*low 3 java inheritance

所以定义了两个类:

    public class SuperClass {
        int count = 5;
        SuperClass() {
        }

    }

    public class SubClass extends SuperClass {
        SubClass() {
            super();

    }

SubClass sub = new Subclass();
System.out.println(sub.count); // prints out 5
Run Code Online (Sandbox Code Playgroud)

除非我对默认可见性修饰符的理解是错误的,否则我认为默认修饰符是只有相同包中的类才能访问变量计数.所以这意味着我的SubClass与我的SuperClass在同一个包中,但是我没有指定它们在我的代码中的任何地方都在同一个包中.这是否意味着SubClass始终与SuperClass在同一个包中?

alf*_*sin 6

你是对的:如果子类位于另一个包中,则无法从子类访问默认访问修饰符(也称为包私有).在您的情况下 - 两个类都在同一目录中,隐含意味着它们在同一个包中.