1、意思不同:
接口(硬件类接口)是指同一计算机不同功能层之间的通信规则称为接口。
抽象类用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。
2、存在情况不同:
接口当中不能存在非抽象的方法。
抽象类当中可以存在非抽象的方法。
3、成员变量不同:
接口中的成员变量默认的都是静态常量(static final)。
抽象类中的成员变量可以被不同的修饰符来修饰。
4、概念不同:
接口是一种行为规范。
抽象类是对象的抽象。
1、抽象类不能直接实例化,并且对抽象类使用 new 运算符会导致编译时错误。虽然一些变量和值在编译时的类型可以是抽象的,但是这样的变量和值必须或者为 null,或者含有对非抽象类的实例的引用。
2、允许(但不要求)抽象类包含抽象成员。
3、抽象类不能被密封。
扩展资料:
接口和抽象类的相似之处:
1、不能实例化。
2、包含未实现的方法声明。
3、派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员)。
参考资料来源:百度百科-接口
参考资料来源:百度百科-抽象类
初学者,都觉得接口的功能可以完全替代抽象类的功能,其实他们有很大区别,如果需要属性被继承,而不仅仅是方法,则需要用抽象类,当然还有很多啦,你搜索下自己看,我刚才搜了下,有很多网友解释的很好,在此不再赘述!
1. 抽象类可以有构造方法,接口中不能有构造方法。
2. 抽象类中可以有普通成员变量,接口中没有普通成员变量
3. 抽象类中可以包含静态方法,接口中不能包含静态方法
4. 一个类可以实现多个接口,但只能继承一个抽象类。
5. 接口可以被多重实现,抽象类只能被单一继承
6. 如果抽象类实现接口,则可以把接口中方法映射到抽象类中作为抽象方法而不必实现,而在抽象类的子类中实现接口中方法