遇到编码到java中的接口的问题(intelliJ IDEA)

时间:2018-01-24 05:16:18

标签: java interface package

我们现在正在重新创建List接口以及我的DSA类中的ArrayList和LinkedList类,以显示有关添加/删除的两者的低效率分别得到/设定。

教授给了我们一个我以前从未听说过的概念"编码到界面。"帮助删除冗余似乎是合乎逻辑的,但我遇到了一个问题,我不确定它是否是一个IDE问题,或者这是否是预期的行为。

设置这样的ArrayList时(使用自定义接口和类,而不是来自util包):

Configurator.initialize(new DefaultConfiguration());

找不到ArrayList类中的size()方法,但是在ArrayList类中。

然而,当ArrayList被实例化而没有编码到接口时,即

public class foobar{
    List<String> arraylist;

    public foobar(){
      arraylist = new ArrayList<String>();
      ...

size()方法可用。

这是正确的行为吗? 也许我误解了这个概念以及我在编写接口时所阅读的内容,但似乎唯一可用的方法是来自类中定义的接口的方法。

编辑:感谢所有的回复!我读了更多关于多态的知识,现在一切都有意义了。抱歉这个愚蠢的问题,我不明白为什么会这样工作

1 个答案:

答案 0 :(得分:0)

由于没有人愿意回答我的建议,我鼓励您遵循此link

看起来如上所述使用List和ArrayList,你会想要使用这样的东西......

List list = Collections.synchronizedList(new ArrayList(...));