java中接口和抽象类的区别
2016-10-08 20:44
267 查看
java中接口和抽象类的区别
接口和抽象类的简要对比:
对比点 | 接口 | 抽象类 |
---|---|---|
本质 | 对行为的抽象 | 对事物整体的抽象 |
内部成员 | 只能包含抽象方法和静态变量 | 可以有抽象方法,变量以及实现的方法 |
描述关系 | like -a | is-a |
实现抽象方法的关键字 | implement | extends |
是否支持夺继承 | 是 | 否 |
继承后的描述 | 我有。。行为 | 我是。。。。 |
example:
以网上流行的door和alarm为例:首先分析功能:
door具有开门和关门的功能,还有宽和高等属性,所以我们可以对门进行抽象,这里是对事物的抽象,所以使用抽象类:
abstract class Door{ int height; int width; void close(); void open(); }
现在我需要一个门,怎么办呢?很简单,继承Door即可,实现如下:
class MDoor extends Door{ height = 15; width = 5; @Override void close() {} @Override void open() {} }
现在你也需要一个门,并且你的门需要有报警功能,分析一下:首先你要的是门,所以要实现Door,同事你需要报警功能,这可怎么办,在Door里边增加一个alarm()功能?我当然不干,我不要报警功能,他打扰我休息,怎么办呢?哦,刚才说的接口是对行为的抽象,那我直接把报警功能抽象成接口就可以了,实现如下:
interface Alarm{ void alarm(); }
然后就可以生产你的门了:
class YourDoor extends Door Implement Alarm { height = 15; width = 5; @Override void close() {} @Override void open() {} @Override void alarm() {} }
简单的描述就是:我的门是普通门,你的门是一个门,但是在普通门基础上增加了响铃行为。
本Markdown编辑器使用[StackEdit][6]修改而来,用它写博客,将会带来全新的体验哦:
相关文章推荐
- 详细解析Java中抽象类和接口的区别
- 详细解析Java中抽象类和接口的区别(来自:java060515)
- 抽象类与java接口的区别
- Java 抽象类和接口的区别
- [转]解析Java中抽象类和接口的区别
- 详细解析Java中抽象类和接口的区别(来自:java060515)
- 详细解析Java中抽象类和接口的区别
- java里抽象类和接口的区别
- java中抽象类与接口的区别
- Java中的抽象类和接口的区别与联系
- 详细解析Java中抽象类和接口的区别
- java里抽象类和接口的区别
- 详细解析Java中抽象类和接口的区别
- Java中抽象类和接口的区别
- Java的接口和抽象类的区别
- 详细解析Java中抽象类和接口的区别
- 学JAVA必须知道:抽象类与接口的区别
- 学JAVA必须知道:抽象类与接口的区别
- 解析Java中抽象类和接口的区别
- 解析Java中抽象类和接口的区别