java 的接口到底起什么作用
我想,可能不止我一个人有这个疑问,所以,把它贴出来。
下面是madai和clkrst给我的回答。
在此谢谢两位。
我的问题是:
java 的接口到底起什么作用?
1、从书中看到的是java程序的接口中只定义了常量及空方法,空的方法有什么用呢?还要在类中写方法体,那还要接口干什么?
2、一个程序中写了2个接口,并在同一个类中写方法体,这与多继承有什么关系。
3、包中那些已定义的接口,怎么知道那里面定义了什么方法。
说到底,接口有什么实际意义,哪本书都不讲,一味的讲是多继承,不结合实际实在不好懂。
Madai的理解是:
java接口的用处主要体现在下面几个方面:
(1)通过接口可以实现不相关类的相同行为,而不需要了解对象所对应的类。
(2)通过接口可以指明多个类需要实现的方法。
(3)通过接口可以了解对象的交互界面,而不需了解对象所对应的类。
Clkrst给出了更详细的解释:
类描述了一个实体,包括实体的状态,也包括实体可能发出的动作。
接口定义了一个实体可能发出的动作。但是只是定义了这些动作的原型,没有实现,也没有任何状态信息。
所以接口有点象一个规范、一个协议,是一个抽象的概念;而类则是实现了这个协议,满足了这个规范的具体实体,是一个具体的概念。
从程序角度,简单理解,接口就是函数声明,类就是函数实现。需要注意的是同一个声明可能有很多种实现。
所以就你的问题:
1、接口中定义类方法的原型,但是不能说是空方法,因为空方法的意思是有实现体,只不过实现体是空操作。实际上接口没有定义任何实现体。具体的实现体都是在实现接口的类中,接口只是定义了这些方法的调用方式。
你当然也可以不用接口,直接在类里面写方法,但是如果你的一组方法需要在很多类里实现,那么把它们抽象出来,做成一个接口规范,不是更好么?
2、一个类描述了一个实体,这个实体可能是一个复杂的对象,它的动作很多,如果把这些动作分类,用接口a定义其中的某一组动作,接口b定义其中的另外一组动作,这样的结构,比较清楚。
这种方式具备了多继承的优点,避免了多继承的缺陷。实际上在历史上,接口在很大程度上,是
相关文档:
public List<Integer> findSame(int array1[], int array2[]) {
// 重复元素结果集合
List<Integer> result = new ArrayList<Integer>();
// ......
今天重新整理电脑,找到一个文件,看了下日期(2006.11.3) ,怕不小心再丢了,存到网上来晒晒。
关键字又称保留字,是 Java 语言规定了特定含义的标识符。用户只能按照系统规定的方式使用,不能自行定义。关键字一律用小写字母表示。Java 中的关键字有 50 个,按用途划分为:数据类型、语句、修饰、方法、类、 ......
下以java为例子说明一些自己遇到的:
访问控制:
private 私有的
protected 受保护的
public 公共的
类、方法和变量修饰符
abstract 声明抽象
class 类
extends 扩允,继承
final 终极,不可改变的
implements实现
interface 接口
native 本地
new 新,创建
static 静态
strictfp 严格,精准
synchr ......
所需jar文件为 jxl.jar 可以在此获取: http://www.uushare.com/user/sudyguo/files/2209594
这种方法导入excel效率较高,可批量导出; 更多更详细的用法,可以看: http://pcedu.pconline.com.cn/empolder/gj/java/0608/853669_1.html
实例:
此段代码用于生成excel文件
*/
WritableWor ......
//Java网络聊天服务器
import java.io.*;
import java.awt.*;
import java.net.*;
import java.util.*;
import java.awt.event.*;
public class ServerFrame extends Frame implements ActionListener{
int ScreenWidth,ScreenHeight;
Button CloseServer;
TextArea ServerStatus;
ServerThread ......