Java Interface
Java interface can define methods with default implementation and static methods.
Example
public interface DecodeContext {
default boolean allowUnknownEnumValue() {
return true;
}
void recordUnknownEnumValue(String value);
}