本文共 1948 字,大约阅读时间需要 6 分钟。
接 口 | 抽 象 类 |
静态常量 | 一般变量 常量 静态变量 静态常量 |
抽象方法 | 方法 静态方法 抽象方法 抽象静态方法 |
使用关键字 interface | 使用关键字 abstract |
应 用 | 接 口 | 抽 象 类 |
多重继承 | 一个类可以完善多个接口,即支持间接多重继承。 | 一个类只可以继承一个抽象类。 |
第三方开发和 扩展 | 可以在任何第三方已存在类的代码中实现接口。 | 为了继承抽象类,第三方类必须重写子类。 |
“ like a ”与“ is a ” | 通常对边缘和附属功能提出协议性规范;具有广泛性。 | 通常定义对象的核心形态和行为。 |
同性 | 适用于所有实现共享签名和协议的不同应用。 | 适用于各种不同的实现、但都基于共同状态和行为源的应用。 |
自由度 | 只要“像我”。 | 必须“是我”。 |
可维性 | 相同 | 相同 |
速度 | 相对慢 | 相对快 |
简洁性 | 高。无须关键字,所有数据自动为公有静态常量。所有方法自动为抽象。 | 低。关键字不可省略。 |
可扩充性 | 如果在接口中添加新方法协议,必须修改所有应用它的类的代码。 | 如果添加完善了的新方法,无须对所有应用它的类进行修改。 |
接 口 名 | 常量 / 方法 | 包 名 | 功 能 | 讨论章节 |
Cloneable | 无。推荐覆盖 Object.clone() | java.lang | 对象拷贝 | 9 |
Comparable | int compareTo(Object o) | java.lang | 对象排序 | 10 |
Runnable | void run() | java.lang | 线程运行 | 14 |
接 口 名 | 常量 / 方法 | 包 名 | 功 能 | 讨论章节 |
AudioClip | void loop() void play() void stop() | java.applet | 音频播放 | 20 |
ActionListener | void actionPerformed(ActionEvent) | java.awt.event | 事件处理 | 17 , 18 |
WindowConstants | int DISPOSE_ON_CLOSE int DO_NOTHING_ON_CLOSE int EXIT_ON_CLOSE int HIDE_ON_CLOSE | javax.swing | 窗口控制 | 18 |