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

标签 java inheritance import compilation

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

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

注意事项:

  • 可能有不止一个答案。
  • 我知道如果您让 eclipse 组织您的导入,这不是什么大问题,无需提及。这是关于“为什么”,而不是“如何”(a-la- this)。

最佳答案

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

java.util.List<String> list = new java.util.ArrayList<String>();

导入是为了方便(并且仅供编译器使用——它们在类编译后丢失),使您不必写出所有内容,而只会让您编写 List<String> list = new ArrayList<String> (在您从 java.util 进行相关导入之后)。因此,子类没有理由“继承”导入。

关于java - 为什么 Java 编译器不支持导入继承?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14074874/

相关文章:

java - 从 jar 文件创建 Windows 服务

java - 只允许登录用户访问私有(private)页面

C# - 使用子类实现接口(interface)

c++ - 虚函数设计问题

Java接口(interface)继承与实现

Python导入文件夹

python - 导入的 Python 模块中的导入语句如何工作?

java - 更新谷歌应用引擎数据存储中的查询(java)

java - 如何延迟所有tomcat服务器请求

ios - Swift - 导入和打开自定义文件扩展名