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

问题描述

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

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

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 :......
答案就在这里:抽象类与接口的定义
----------------------

时间: 2024-10-31 18:33:44

设计-为什么在抽象接口中定义抽象类的相关文章

Java访问在接口中定义的常量

我们在定义常量的时候,可以把常量定义在接口里面,如: package org.zy.demo.base; public interface InterfaceDemo { final String name="this is my name"; } 上面是我定义的接口和常量. 常量的定义没有指明 public static 我实现此接口: package org.zy.demo.base; public class InterfaceImpl implements InterfaceD

java接口中定义的常量的访问方法

我们在定义常量的时候,可以把常量定义在接口里面,如: packageorg.zy.demo.base; publicinterfaceInterfaceDemo{ finalStringname="thisismyname"; } 上面是我定义的接口和常量. 常量的定义没有指明publicstatic 我实现此接口: packageorg.zy.demo.base; publicclassInterfaceImplimplementsInterfaceDemo{ } 那么我们如何访问呢

Java中接口的定义与实现

1.定义接口 使用interface来定义一个接口.接口定义同类的定义类似,也是分为接口的声明和接口体,其中接口体由常量定义和方法定义两部分组成.定义接口的基本格式如下: [修饰符] interface 接口名 [extends 父接口名列表]{ [public] [static] [final] 常量; [public] [abstract] 方法; } 修饰符:可选,用于指定接口的访问权限,可选值为public.如果省略则使用默认的访问权限. 接口名:必选参数,用于指定接口的名称,接口名必须

C++编程规范之36:优先提供抽象接口

摘要:     偏爱抽象艺术吧:抽象接口有助于我们集中精力保证抽象的正确性,不至于受到实现或者状态管理细节的干扰.优先采用实现了抽象接口的设计层次结构. 应该定义和继承抽象接口.抽象接口是完全由(纯)虚函数构成的抽象类,没有状态(成员设计),通常也没有成员函数实现.在抽象接口中避免使用状态能够简化整个层次结构的设计.     应该遵守依赖倒置原理(DependencyInversion Principle ,DIP):    1.高层模块buy应该依赖于低层模块.相反,两者都应该依赖抽象.  

使用AIDL(Android接口描述语言)设计和使用远程接口

http://mintelong.iteye.com/blog/461862# 1 使用AIDL(AndRoid接口描述语言)设计和使用远程接口      1.1 使用AIDL实现IPC         1.1.1 创建一个AIDL文件         1.1.2 实现接口         1.1.3 向客户端公开接口         1.1.4 使用parcelables进行参数的值传递         1.2 调用一个IPC方法  使用AIDL(AndRoid接口描述语言)设计和使用远程接口

关于JAVA接口中是否包含成员变量的争执,请大家帮忙解答!

问题描述 公司考试的试题中有一道判断题:接口不包含成员变量和方法实现.我选择的而是错,因为接口中可以包含成员变量(其实就是接口常量),但是答案是对的,我与出题人交流时无法达成一致,他的理由是:首先,对于变量和常量做一个澄清.常量就是不可以被改变的数值.变量就是可以被改变的数值.如果模糊一点,也可以都叫做变量. 对于接口中定义的变量,编译器会默认它是常量,不可更改.等同于 final static. 其次,对于接口来说,本身是不不可以被实例化,也不能包含任何可变的数据.您给出的例子是类中的变量,而

初始化java接口中的字段

接口中定义的字段会自动具有static和final属性.它们不能是"空白final",但可初始化成非常数表达式.例如:   //: RandVals.java // Initializing interface fields with // non-constant initializers import java.util.*; public interface RandVals { int rint = (int)(Math.random() * 10); long rlong =

微信公众帐号开发教程(十) 解析接口中的消息创建时间CreateTime

从微信公众平台的消息接口指南中可以看出,每种类型的消息定义中,都包含有CreateTime参数,它表示 消息的创建时间,如下图所示: 开发教程(十) 解析接口中的消息创建时间CreateTime-create time"> 上图是消息接口指南中4.1-文本消息的定义.注意CreateTime的描述:消息创建时间(整型),重点在于 这是一个整型的时间,而不是我们大家所熟悉的类似于"yyyy-MM-dd HH:mm:ss"的标准格式时间. 本文主要想介绍的就是微信消息接口中

objective c-C中int数组在类接口中的问题

问题描述 C中int数组在类接口中的问题 我希望能在类接口中定义一个作为实体变量的cInt数组,这样我就能通过任意方法访问它. @interface aVCofMine : UIViewController{ int[] myArray;} 还有 @interface aVCofMine : UIViewController{ int myArray[];} 但是完全没用,不知道是不是不能这样定义啊?要是能定义怎么定义? 谢谢. 解决方案 C数组需要动态分配和调整尺寸: @interface A