代码之家  ›  专栏  ›  技术社区  ›  Thilo

删除接口是否会中断对象上的代码调用方法?

  •  2
  • Thilo  · 技术社区  · 16 年前

    我有课 C 实现接口的 I C . 调用代码知道它正在使用 C ,而不仅仅是界面。

     class C implements I {
          void theMethod(){} ; // is declared in the interface I
     }
    
     C object;
     object.theMethod();
    

    当我从类定义中删除接口(但保留所有方法)时,调用代码(根本不引用接口)是否仍然有效(无需重新编译)?

    3 回复  |  直到 16 年前
        1
  •  5
  •   ChssPly76    16 年前

    是的,只要它不显式引用接口,它就可以工作 I 在任何地方

    从…起 JLS: Resolution of Symbolic References

    或接口引用其他类 接口及其字段, 方法和构造函数 (§13.1)其他类别和

    等级 ClientClass 参考类的字段/方法 C 该类可以实现。

        2
  •  2
  •   Gregory Pakosz    16 年前

    它与类的对象一样长时间工作 C 从未被称为 I .

    你也可以参考 Evolving Java-based APIs part 2 .

        3
  •  1
  •   Steve De Caux    16 年前

    import 对于任何调用代码中的接口,您都有理由相信重构将按计划进行。

    推荐文章