-2

List是java中的一个接口。它有一些方法。通常,接口是方法原型的规范。即接口仅由方法签名组成,接口中的该方法没有实现。

我怀疑如果 List 接口的方法在接口内没有任何实现,它们是如何工作的。

假设我有一个类 Book,它具有 name 属性、setter、getter 方法。我还有另一堂像这样的getBooks。

public class GetBooks{
    List<Book> list;
    public List<Book> getBooks(){
    return list;
    }
    //setter method..
}

我在运行时通过其他一些类将书籍发送到 set 方法。

我有另一堂这样的UseBooks。

public class UseBooks{
    .....
    ....
    List<Book> list = new GetBooks().getBooks();
    list.add(new Book("aaa"));
}

我的问题是 add 方法如何添加书籍,即使它在接口 List 中,因为我的 getBooks() 返回 List 接口而不是 Arraylist 或其他一些实现类。

4

4 回答 4

3

在此处输入图像描述

Java provides 3 concrete classes which implement the list interface
Vector
ArrayList
LinkedList
于 2013-01-10T06:43:06.020 回答
1

java.util.ArrayList, java.util.LinkedList,java.util.VectorList接口的具体实现类。此类包含所有方法实现。你可以使用像 -

List<String> list = new ArrayList<String>();
于 2013-01-10T06:32:41.383 回答
1

List您将使用的唯一类型对象将是实际实现的类型,List例如等。它们将提供实现。ArrayListLinkedList

您不能实例化具有来自超类或接口的未实现抽象方法的类。

于 2013-01-10T06:33:30.043 回答
1

“我怀疑如果 List 接口的方法在接口内部没有任何实现,它们是如何工作的”-(!!!!!!)它将使用实现此接口的任何类实例的实现。所以取决于不同类实例中的实现。

您是否期待任何类型的详细示例?

于 2013-01-10T06:44:02.753 回答