为什么Java编译器不支持导入继承?

ein*_*ica 6 java import inheritance compilation

在Java中,导入与(外部)类相关,因为每个(外部)类应该在单独的文件中编码.因此,可以声称import ...;类定义之前的指令与类相关联(有点像注释).

现在,如果可以继承父类的导入,那将大大减少源文件的混乱.为什么这不可能?即为什么Java编译器也不考虑基类的导入?

笔记:

  • 可能有不止一个答案.
  • 我知道如果让eclipse组织你的进口,这不是什么大问题,不需要提及.这是关于'为什么',而不是'如何'(a-la- this).

ars*_*jii 10

首先,重要的是要注意,并非每个类都必须在单独的文件中编码 - 而是每个公共顶级类必须编码.不,导入并不真正与任何类相关联 - 它们只是用于在文件中包含某些外部类/包的语句,以便可以使用它们.事实上,你永远不需要实际导入任何东西,你总是可以使用全名,即:

java.util.List<String> list = new java.util.ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)

进口在那里为方便(并只用于编译-类编译后,他们都将丢失),以节省您不必编写了这一切,反而只会让你写List<String> list = new ArrayList<String>(您从相关进口后java.util).因此,没有理由为什么子类应该"继承"导入.

  • +1并且我认为明确说明导入仅适用于编译器(或为了便于阅读以避免使用完全限定的名称 - 无论您喜欢哪种原因)都很重要.课程编译后,它们会丢失. (3认同)