我是java新手,我有一个接口包。对于接口声明中使用的类型,每个接口都有许多导入。
// MyInterface.java...
package a.b.c.interfaces;
import java.math.BigDecimal;
import java.util.List;
import java.util.Set;
public interface MyInterface() { ...
然后我得到了一个包含模型的包,在其中,我试图创建一个实现 MyInterface()
.
// MyImplementation.java...
package a.b.c.models;
public class MyImplementation implements MyInterface {...
我有两个问题:
做 MyInterface()
需要导入到 MyImplementation()
? 如果没有,那么是否需要在编译期间手动链接它?
如果 MyInterface()
是否还需要导入接口所需的类型,或者 MyInterface.java
处理好这个?
2条答案
按热度按时间k10s72fa1#
对于你的第一个问题,你必须导入接口,在类中你必须实现你的接口。
至于你的第二个问题,你只需要导入
MyInterface
. jvm将处理其余部分。我强烈建议你把面向对象的概念作为一个太基本的问题。
也可以使用像eclipse这样的ide。
tct7dpnv2#
java中的导入基本上是告诉编译器当您编写
MyInterface
你真的是说a.b.c.interfaces.MyInterface
. 不用导入就可以编写java代码,但是它非常冗长,看起来很混乱。您需要导入任何您想要使用的类型,这些类型与您正在编写或使用的类不在同一个包中
java.lang
所以自从MyInterface
在a.b.c.interfaces
以及MyImplementation
在a.b.c.model
你需要导入它。您确实需要导入
MyInterface
如果您在代码中的任何地方编写它们的类型,则使用-由于您要实现接口,因此需要在方法声明中编写它们的类型。在java中,无法使用与另一个类相同的导入。下面是一个不需要导入类型的示例:
usesbiginteger.java文件:
主.java
我们不必进口的原因
java.math.BigInteger
这里是我们从来没有真正写过的BigInteger
所以我们不需要告诉编译器我们的意思-我们只是传递UsesBigInteger.get()
编译器已经知道这是一个java.math.BigInteger
.如果我们想保留
BigInteger
我们需要导入它:主.java