为什么我不需要在Main中导入A?

0 java

   package A;

    public class A {


    }
Run Code Online (Sandbox Code Playgroud)
package B;

import A.*;

public class B {

    public A a;
}
Run Code Online (Sandbox Code Playgroud)
import B.*;

public class Main {

    public static void main(String[] args) {

        Object obj = new B().a;
    }

}
Run Code Online (Sandbox Code Playgroud)

为什么我不需要在Main中导入A类?它在某些时候用于Main!

有人能告诉我import指令是如何工作的吗?

Dar*_*oid 6

它实际上并没有用到Main.在任何时候都没有Main引用自称的类A,其任何方法或其任何字段.编译器永远不需要弄清楚你输入的内容,A但确实意味着A.A- 这就是所有导入的内容.new B().a可能会返回一个A,但Main不关心,因为它是立即和隐式地转换为Object.