为什么在抽象接口中定义抽象类

在此处定义了一个抽象接口里面定义了抽象方法

public abstract interface IManagerRoot{

public abstract List<?> getList();

}

定义了一个抽象接口继承抽象接口
public abstract interface IManager extends IManagerRoot{}

这个是抽象接口的实现类
public abstract class ManagerRootImpl
implements IManagerRoot{

public final List<?> getList()
{
return getDao().getList(this.entityClass);
}

}

然后又一个抽象类实现这个抽象接口
public abstract class ManagerRootImpl implements IManagerRoot{

}

最后再由一个普通的类继承抽象接口的实现类然后再实现一个抽象接口
public class BaseManagerImpl extends ManagerRootImpl
implements IManager{

}

我不明白的是 他为什么要这么设计,我要知道他答题的思想,这么设计为什么?

帮我解答下,拜谢各位。

为了交互,让接口类型的和这个抽象子类之间的交互

Thinking in java inner classes
  引言
  每个 JVM 都有两种机制,一个是装载具有合适名称的类 ( 类或是接口 ) ,叫做类装载子系统;另外的一个负责执行包含在已装载的类或接口中的指令,叫做运行引擎。每个 JVM 又包括方法区、堆、 Java 栈、程序计数器和本地方法栈这五个部分,这几个部分和类装载机制与运行引擎机制一起组成的体系结构图为:
  Jvm :......
答案就在这里:抽象类与接口的定义
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?