Java 接口:接口可以用在链表中吗?

Java interface: Can an interface be used in a Linked list?

我刚开始使用 java,我想知道是否有人可以告诉我有没有办法在链表中使用接口。我有一个名为问题的界面。我从中实现了两个 类:1) MCQ 2) TrueFalse。我想要一个问题界面列表,这样我的列表中就可以有随机的 MCQ 和 TrueFalse。 Java 有可能吗?这是我到目前为止所做的:

private static List<Question> Questions; //declaring in a class

Questions = new LinkedList<Question>(); //creating a linkedlist

然后简单地添加 MCQ 和 TrueFalse。

是的,您可以使用接口作为链表的类型参数。

您应该在接口中定义足够的方法,以便能够处理 MCQ 和 TrueFalses 的所有有用功能,而不必向下转换。

你写的是真实有效的。

questions = new LinkedList<Question>(); //creating a linkedlist

接受所有类型的 Question 对象。要向其中添加 MCQ,唯一的规则是您的 MCQTrueFalse 必须实现 Question 接口。如果你已经这样做了,那很好。

但要小心访问它们。由于您是随机获取的,因此您永远不知道返回的是哪个对象。如果您将 MCQ 分配给 TrueFalse,则会出现 ClassCastException。为避免这种情况,请始终使用它的类型(问题)。