List是java中的一个接口。它有一些方法。通常,接口是方法原型的规范。即接口由方法签名组成,只有接口中的方法不存在实现。
我怀疑如果List接口的方法在接口中没有任何实现,它们如何工作。
假设我有一个具有name属性,setter,getter方法的类Book。 我还有另一个类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或其他一些实现类。
答案 0 :(得分:3)
Java provides 3 concrete classes which implement the list interface
Vector
ArrayList
LinkedList
答案 1 :(得分:1)
java.util.ArrayList
,java.util.LinkedList
,java.util.Vector
是List
接口的具体实现类。这个类包含所有方法实现。你可以使用喜欢 -
List<String> list = new ArrayList<String>();
答案 2 :(得分:1)
您将使用的List
类型的唯一对象将是实际实现List
的类型,例如ArrayList
,LinkedList
等。它们将提供实现。
您无法实例化具有超类或接口的未实现抽象方法的类。
答案 3 :(得分:1)
“我怀疑List接口的方法如果在接口内部没有任何实现,如何工作” - (!!!!!!) 它将使用实现此接口的任何类实例的实现。所以取决于不同类实例中的实现。
您是否期待任何类型的详细示例?