如果有一个包的层次结构(即pckg1.pckg2.pckg3
)并且每个包具有相同的类(即Abc),那么如何从pckg1导入类Abc?
import pckg1.pckg2.pckg3.Abc
语句是否与Abc
不一致,这三个包中都存在。
答案 0 :(得分:3)
实际上没有包层次结构这样的东西。
pckg1.pckg2
一无所知,并且从pckg1
继承任何内容。实际上,pckg1.pckg2
可以存在而不存在pckg1
。它基本上只是帮助逻辑订购事物的命名约定。
pckg1.pckg2.pckg3.Abc
并不含糊。它将来自您当前认为是层次结构中最低的包pckg3
。
那就是说,没有pckg3
之类的东西。 pckg1
,pckg1.pckg2
和pckg1.pckg2.pckg3
可以很容易地称为cat
,banana
和magic
。 < / p>
答案 1 :(得分:1)
import pckg1.pckg2.pckg3.Abc
并不含糊。它指的是具体的课程。在这种情况下,来自Abc
包的pckg1.pckg2.pckg3
。
在java中没有包层次结构。它看起来只有pckg1.pckg2
和pckg1.pckg2.pckg3
相关,但实际上它们之间没有关系(除了存储.class
文件的文件结构,但它不是语言的一部分)
答案 2 :(得分:0)
import pckg1.Abc;
将包视为Windows文件夹。
答案 3 :(得分:0)
如上所述,你会:
import pckg1.Abc;
但是我也会在定义变量时执行完整的包路径以避免歧义。例如:
pckg1.Abc abc = new pckg1.Abc();