1
接口比抽象类更加抽象,因为
抽象类中
可以定义构造器,可以有抽象方法和具体方法
,而接口中
不能定义构造器而且其中的方法全部都是抽象方法
。
2 **
类可以
实现很多个接口
,但是只能继承一个抽象类
。
一个类如果继承了某个抽象类或者实现了某个接口都需要
对其中的抽象方法全部进行实现
,否则
该类仍然需要被声明为抽象类
。
3
抽象类可以在不提供接口方法实现的情况下实现接口。
4
Java 接口中声明的变量默认都是final的。抽象类
可以包含非final
的变量。
5
Java
接口
中的成员函数默认是 public
的。抽象类
的成员函数可以是private,protected 或者是 public
。
6
接口
是绝对抽象的,不可以被实例化
。抽象
类也不可以被实例化
,但是
,如果它包含main方法的话是可以被调用的。(抽象类和接口都不能够实例化,但可以定义抽象类和接口类型的引用)
7 **
接口可以继承接口
。抽象类可以实现(implements)接口
,抽象类可继承具体类,但前提是具体类必须有明确的构造函数。
8 **
有抽象方法
的类必须被声明为抽象类
,而抽象类未必要有抽象方法
。
9 ***
接口
可以继承接口
,而且支持多重继承
。抽象类
可以实现(implements)接口
,抽象类可继承具体类也可以继承抽象类
。