Could someone point me out the reason why default interface methods cannot define behavior/implementation for other interface methods implemented by a certain class, please?
interface Transformable {
int quarter();
BigDecimal value();
}
interface Quarterly {
int getQuarter();
void setQuarter(int quarter);
// Method that I would expect to be used to define Transformable method behavior
default int quarter() {
return getQuarter();
}
}
// expects quarter() implementation
static class SomethingQuarterly implements Quarterly, Transformable {
private int quarter;
private BigDecimal value;
@Override
public int getQuarter() {
return quarter;
}
@Override
public void setQuarter(int quarter) {
this.quarter = quarter;
}
@Override
public BigDecimal value() {
return value;
}
}