我们知道接口中的方法没有机构......那么list,set,sortedset,navigable set的方法如何在没有实体的情况下工作..请解释一下?看起来像一个简单的问题,但我无法想出来?
答案 0 :(得分:0)
接口定义了契约,实现该接口的类必须遵循该契约。
界面是抽象。我们在Interface中定义方法(函数)签名。 java.util.List
是一个界面。 java.util.ArrayList
是实现接口List
的具体类。方法实现存在于ArrayList
中。同样LinkedList
是List
的另一个具体实现。
用户代码与对象,对象一起使用是具体实现之一。我们不能拥有接口的对象。可能有一个类只显示List
类型的字段(变量)。但在这种情况下,必须有一些机制将注入具体实现到这些字段。
接口方法无法工作。我们可以使用Interface类型定义的引用变量来引用具体实现的对象。喜欢
List<String> listObj = new ArrayList<>();
现在每当我们调用listObj.add("alpha");
时,它实际上是由执行的具体实现(在本例中为ArrayList)定义的方法。请注意,上面我们使用了listObj
的直接赋值,在实际代码中,这可能发生在构造函数或setter方法中。