可能重复:
列表方法在 java 中的工作原理
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 或其他一些实现类。