JAVA中抽象类和接口的区别比较,以及它们各自的用途。
1.JAVA抽象类:
抽象类除了不能实例化以外,跟普通类没有任何区别。在《JAVA编程思想》一书中,将抽象类定义为“包含抽象方法的类”。
2.JAVA接口:
接口,英文称作interface,是对事物最高层次的抽象,用来供别人调用的方法或者函数。
JAVA抽象类和接口的主要区别如下图:
什么时候使用抽象类和接口
首先,我们要先弄清楚抽象类和接口之间的关系:
- 类对事物的抽象,定义了事物的属性和行为。
- 抽象类是不完全的类,具有抽象方法。
- 接口则比类的抽象层次更高。
所以,我们可以这样理解它们之间的关系:类是对事物的抽象,抽象类是对类的抽象,接口是对抽象类的抽象。
在设计类的时候,首先考虑用接口抽象出类的特性,当你发现某些方法可以复用的时候,可以使用抽象类来复用代码。简单说,接口用于抽象事物的特性,抽象类用于代码复用。