interface A { T getValue(); } /* abstract class AbstractA implements A { } */ interface B extends A { @Override default String getValue() { return "B"; } } /* class BImpl extends AbstractA implements B { } public class Code { public static void main(final String[] args) { final A object1 = new BImpl(); System.out.println(object1.getValue()); } } */