What is the purpose of the default keyword in Java?

后端 未结 8 786
别那么骄傲
别那么骄傲 2020-12-02 08:28

An interface in Java is similar to a class, but the body of an interface can include only abstract methods and final fields

8条回答
  •  谎友^
    谎友^ (楼主)
    2020-12-02 08:42

    It's a new feature in Java 8 which allows an interface to provide an implementation. Described in Java 8 JLS-13.5.6. Interface Method Declarations which reads (in part)

    Adding a default method, or changing a method from abstract to default, does not break compatibility with pre-existing binaries, but may cause an IncompatibleClassChangeError if a pre-existing binary attempts to invoke the method. This error occurs if the qualifying type, T, is a subtype of two interfaces, I and J, where both I and J declare a default method with the same signature and result, and neither I nor J is a subinterface of the other.

    What's New in JDK 8 says (in part)

    Default methods enable new functionality to be added to the interfaces of libraries and ensure binary compatibility with code written for older versions of those interfaces.

提交回复
热议问题