我正在编写一些Java代码,想在我的主类Array中编写方法。该类实现了ImplementableClass接口,前者继承自Iterable接口。Array类具有一个类型。
ImplementableClass.java:
public interface ImplementableClass<E> extends Iterable<E>{
public void insertObject(E obj);
public E removeObj(E obj);
}
Main.java:
public class Array<Integer> implements ImplementableClass<E>{
public void insertObject(E obj){
}
public E removeLastObject(E obj){
}
//... main method and others below...
}
我对上面两个文件中的代码有一些疑问。
根据Java文档,Iterable是类型E(泛型值)。据我所知,接口只是“蓝图”,其中必须在“实现”它们的类中使用方法。从基本的角度来看,这里不应该有任何变量。话虽如此,正如您所看到的,我确实在我的ImplementableClass中声明了方法,并在Main中使用。因此,我有几个问题:
当我在我的Array类中声明ImplementableClass类的方法时,这会“覆盖”ImplementableClass类的方法,对吗?
由于“E obj”是两个方法中的参数,我在我的Array类中声明方法时它们必须相同吗?我应该传递什么给这些方法?“E obj”是什么意思?
我想创建一个可以容纳类型为E的对象的数组。这意味着每当我实例化一个新对象时->
Array<Integer> theArray = new Array<Integer>
我可以在theArray实例上调用我在Array类中拥有的方法,对吗?(例如theArray.removeLastObject())我应该传递什么参数?为什么在这种情况下使用
Iterable<E>
会有用?