interface BaseInterface { default T print() { return null; } abstract public T print2(String a); } interface SecondInterface extends BaseInterface { abstract public T print(); abstract public T print(String a); abstract public T print3(String a); } abstract class SecondClass implements BaseInterface { public T print2(String a){ return null; } abstract public T print3(String a); } class B extends SecondClass implements SecondInterface { }