何时使用extends或implements Comparable(Java)+;为什么我不能创建对象

何时使用extends或implements Comparable(Java)+;为什么我不能创建对象,java,arraylist,data-structures,compare,comparable,Java,Arraylist,Data Structures,Compare,Comparable,我正在研究数据结构,我被要求编写一个程序,允许商店经理使用4个类操作库存:ListInterface、ExpandableArrayList(实现该接口的类)、class item(存储在Arraylist中的类型),当然还有Test类 有些方法需要使用compareTo。也就是说,具有可比性,但我不知道哪门课应该具有可比性? 我是否应该编写实现或扩展比较 以下是我现在拥有的类标题: public interface ListInterface<T extends Comparable &

我正在研究数据结构,我被要求编写一个程序,允许商店经理使用4个类操作库存:ListInterface、ExpandableArrayList(实现该接口的类)、class item(存储在Arraylist中的类型),当然还有Test类

有些方法需要使用compareTo。也就是说,具有可比性,但我不知道哪门课应该具有可比性? 我是否应该编写实现扩展比较

以下是我现在拥有的类标题:

public interface ListInterface<T extends Comparable <?super T >> {... }

public class ExpandableArrayList <T extends Comparable <? super T >>
implements ListInterface <T> { ...... } 

public class Item<T extends Comparable<T>> {... } 

public interface ListInterfaceT您需要实现的类型项。这将允许ExpandableArrayList类使用该类提供的比较对Item类型的元素运行compareTo方法。当您实现compareTo from Comparable时,您必须给出一种方法来比较不同的项目,理想情况下,这应该基于项目类的属性

public class Item implements Comparable<Item> {... }
公共类项实现了可比较的{…}
这就是def类的外观

您必须为接口编写
实现
,为类编写
扩展

继承权


接口应该是这样的-

public interface ListInterface<T extends Comparable<? super T>> {... }

public class ExpandableArrayList<T extends Comparable<? super T>> implements ListInterface <T extends Comparable<? super T>> { ...... } 

public class Item implements Comparable<Item> {... } 

public interface list interface您正在倒退。首先,您使用泛型而不是扩展类型。但最重要的是:你需要比较的类是那些你比较过的类。这应该是您设计中的一个要点。如果不需要比较/排序,请不要使用要求
可比较的方法。如果你这样做了,那么你比较/排序的东西必须是可比较的。哦,你真的帮了很多忙!。。我现在明白了,谢谢
public class Item implements Comparable<Item> {... }
public interface ListInterface<T extends Comparable<? super T>> {... }

public class ExpandableArrayList<T extends Comparable<? super T>> implements ListInterface <T extends Comparable<? super T>> { ...... } 

public class Item implements Comparable<Item> {... }