列表界面的添加方法如何在没有主体的情况下工作? list接口的add方法在哪里定义?

时间:2018-05-22 13:43:13

标签: java

我们知道接口中的方法没有机构......那么list,set,sortedset,navigable set的方法如何在没有实体的情况下工作..请解释一下?看起来像一个简单的问题,但我无法想出来?

1 个答案:

答案 0 :(得分:0)

接口定义了契约,实现该接口的类必须遵循该契约。

界面是抽象。我们在Interface中定义方法(函数)签名。 java.util.List是一个界面。 java.util.ArrayList是实现接口List的具体类。方法实现存在于ArrayList中。同样LinkedListList的另一个具体实现。

用户代码与对象,对象一起使用是具体实现之一。我们不能拥有接口的对象。可能有一个类只显示List类型的字段(变量)。但在这种情况下,必须有一些机制将注入具体实现到这些字段。

除非某些类提供具体实现,否则

接口方法无法工作。我们可以使用Interface类型定义的引用变量来引用具体实现的对象。喜欢

List<String> listObj = new ArrayList<>();

现在每当我们调用listObj.add("alpha");时,它实际上是由执行的具体实现(在本例中为ArrayList)定义的方法。请注意,上面我们使用了listObj的直接赋值,在实际代码中,这可能发生在构造函数或setter方法中。