美文网首页
Java中的 接口Interface到底能不能new?

Java中的 接口Interface到底能不能new?

作者: 小星star | 来源:发表于2019-02-17 18:12 被阅读52次
    1. 由于在 发现匿名类的时候,发现可以直接new(),但是当初老师说Interface不可以new()

      fab.setOnClickListener(new View.OnClickListener() {
                  @Override
                  public void onClick(View view) {
                      Bundle bundle = new Bundle();
                      Intent intent = new Intent(MainActivity.this, NoteNewActivity.class);
                      intent.putExtra("groupName",groupName);
                      intent.putExtra("NewOrEdit","New");
                      startActivity(intent);
              }
          });
      

      这个我们很熟悉,新建匿名类,这样做其实没有new 一个 接口,而是new 了一个没有名字的 类A,A implements 了 Listener,然后实现了 onClick(),他仅仅是简写了而已,其实并没有new 接口

    2. private Map<String, Status> closed = new HashMap<String,Status>();    
      

      这里Map虽然是一个接口,但是我们并没有 new Map(),而是new 了 一个HashMap(),closed只是一个引用对象而已
      用到了 面对对象的多态,父类可以引用子类对象

      Map是一个接口,里面写了一些规范,我们可以只熟悉 Map里面 到底有那些方法即可,而不必关心HashMap()是怎么实现的,里面包含了哪些方法。这样降低了我们的学习成本。
      使用接口可以方便的 让我们操作。

    3. java的实现类可以添加接口外的方法吗?
      可以添加,但是在声明对象时只有声明本身类才能调用到。
      例如:接口A,有ab两个方法,类S实现A,并增加了方法c。
      声明: A s=new S();则s只能调用ab,不能调c。
      声明S s=new S();s可以调用abc方法。

    相关文章

      网友评论

          本文标题:Java中的 接口Interface到底能不能new?

          本文链接:https://www.haomeiwen.com/subject/wzzgeqtx.html