Java中的公共接口和发布接口有什么区别?

use*_*085 3 java interface

我读过这两页

但我仍然没有区分已发布和公开的方法.Java中的一个例子会很有帮助.提前致谢.

giv*_*nse 8

上市

用Java编写的公共接口:

    interface MyInterface { ... }

    public interface MyInterface { ... }

    class MyClass() {
        void anotherInterface() { ... }
        public void someOtherInterface() { ... }
    }
Run Code Online (Sandbox Code Playgroud)

所有这些都是公开的,因为它们不仅可用于内部对象.

发表

已发布接口的状态不是Java语言的一部分,它是某些人可能称之为应用程序体系结构的一部分.它处于更高的抽象层次.

现在,两者之间的关系:

  • 每个已发布的接口都是公共接口.
  • 并非每个公共接口都是已发布的接口.

注意:该概念不仅仅适用于Java接口,它也可以是类,方法等.

深入挖掘:公共接口和已发布接口

  • @PM接口只是可以访问的方法或字段。您不应该从字面上理解它的意思是“接口”。 (2认同)
  • 例如,“ Charge.create()”既是公共的,也是已发布的条带API的一部分,而[`ChargeRefundCollectionDeserializer.deserialize()`](https://github.com/stripe/stripe-java/blob/master /src/main/java/com/stripe/model/ChargeRefundCollectionDeserializer.java#L17)是公开的,但尚未发布。在项目中使用Stripe库的开发人员不应直接使用反序列化器,因此Stripe应该能够更改反序列化的签名而不会破坏使用该库的程序。 (2认同)