Scenario: We have an interface that defines an operation.
public interface Validator {
Optional validate(String subject, String subject2);
}
Some Validators only have 1 String to validate
so we can extend the interface with a simpler one.
public interface SimpleValidator extends Validator {
Optional validate(String subject);
@Override
default Optional validate(String subject, String subject2) {
return validate(subject);
}
}
The above can then be implemented as.
public class SomeSimpleValidator implements SimpleValidator {
@Override
public Optional validate(String subject) {
...
}
}