易截截图软件、单文件、免安装、纯绿色、仅160KB

java 的接口到底起什么作用

 我想,可能不止我一个人有这个疑问,所以,把它贴出来。
 
  下面是madai和clkrst给我的回答。
 
  在此谢谢两位。
 
  我的问题是:
 
  java 的接口到底起什么作用?
 
  1、从书中看到的是java程序的接口中只定义了常量及空方法,空的方法有什么用呢?还要在类中写方法体,那还要接口干什么?
 
  2、一个程序中写了2个接口,并在同一个类中写方法体,这与多继承有什么关系。
 
  3、包中那些已定义的接口,怎么知道那里面定义了什么方法。
 
  说到底,接口有什么实际意义,哪本书都不讲,一味的讲是多继承,不结合实际实在不好懂。
 
 
  Madai的理解是:
  java接口的用处主要体现在下面几个方面:
 
  (1)通过接口可以实现不相关类的相同行为,而不需要了解对象所对应的类。
 
  (2)通过接口可以指明多个类需要实现的方法。
 
  (3)通过接口可以了解对象的交互界面,而不需了解对象所对应的类。
 
 
  Clkrst给出了更详细的解释:
  类描述了一个实体,包括实体的状态,也包括实体可能发出的动作。
 
  接口定义了一个实体可能发出的动作。但是只是定义了这些动作的原型,没有实现,也没有任何状态信息。
 
  所以接口有点象一个规范、一个协议,是一个抽象的概念;而类则是实现了这个协议,满足了这个规范的具体实体,是一个具体的概念。
 
  从程序角度,简单理解,接口就是函数声明,类就是函数实现。需要注意的是同一个声明可能有很多种实现。
 
  所以就你的问题:
  1、接口中定义类方法的原型,但是不能说是空方法,因为空方法的意思是有实现体,只不过实现体是空操作。实际上接口没有定义任何实现体。具体的实现体都是在实现接口的类中,接口只是定义了这些方法的调用方式。
 
  你当然也可以不用接口,直接在类里面写方法,但是如果你的一组方法需要在很多类里实现,那么把它们抽象出来,做成一个接口规范,不是更好么?
 
  2、一个类描述了一个实体,这个实体可能是一个复杂的对象,它的动作很多,如果把这些动作分类,用接口a定义其中的某一组动作,接口b定义其中的另外一组动作,这样的结构,比较清楚。
 
  这种方式具备了多继承的优点,避免了多继承的缺陷。实际上在历史上,接口在很大程度上,是


相关文档:

Java 获取两个整型数组之间的重复元素集合

    public List<Integer> findSame(int array1[], int array2[]) {
        // 重复元素结果集合
        List<Integer> result = new ArrayList<Integer>();
        // ......

C语言和JAVA一样,函数参数传递方式都为值传递方式

定义按值传递和按引用传递这两个术语是重要的。
按值传递意味着当将一个参数传递给一个函数时,函数接收的是参数的一个副本。因此,如 果函数修改了该参数,仅改变副本,而原始值保持不变。按引用传递意味着当将一个参数传递给一个函数时,函数接收的是参数的内存地址,而不是参数的副本。因 此,如果函数修改了该参数,调 ......

Java实现几种常见排序方法(下)

插入排序的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。其具体步骤参见代码及注释。
view plaincopy to clipboardprint?
/** 
 * 插入排序<br/> 
 * <ul> 
 * <li>从第一个元素开始,该元素可以认为已经被排序 ......

Java Map 集合类简介

 
java.util 中的集合类包含 Java 中某些最常用的类。 最常用的集合类是 List 和 Map。 List 的具体实现包括 ArrayList 和 Vector,它们是可变大小的列表,比较适合构建、存储和操作任何类型对象的元素列表。 List 适用于按数值索引访问元素的情形。
Map 提供了一个更通用的元素存储方法。 Map 集合类用于存储元素 ......

Java中I/O初探


 Java中I/O初探
 
实例:读取文件test.Txt
 
代码:
try {
FileReader fReader=new FileReader("c:\\java\\test.txt");
BufferedReader bReader=new BufferedReader(fReader);
while(true) {
    String temp=bReader.readLine();
&nbs ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号