接口和抽象类有什么区别?

如题所述

1、意思不同:

接口(硬件类接口)是指同一计算机不同功能层之间的通信规则称为接口。

抽象类用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。

2、存在情况不同:

接口当中不能存在非抽象的方法。

抽象类当中可以存在非抽象的方法。

3、成员变量不同:

接口中的成员变量默认的都是静态常量(static final)。

抽象类中的成员变量可以被不同的修饰符来修饰。

4、概念不同:

接口是一种行为规范。

抽象类是对象的抽象。

1、抽象类不能直接实例化,并且对抽象类使用 new 运算符会导致编译时错误。虽然一些变量和值在编译时的类型可以是抽象的,但是这样的变量和值必须或者为 null,或者含有对非抽象类的实例的引用。

2、允许(但不要求)抽象类包含抽象成员。

3、抽象类不能被密封。

扩展资料:

接口和抽象类的相似之处:

1、不能实例化。

2、包含未实现的方法声明。

3、派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员)。

参考资料来源:百度百科-接口

参考资料来源:百度百科-抽象类



温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-11-17
初学者,都觉得接口的功能可以完全替代抽象类的功能,其实他们有很大区别,如果需要属性被继承,而不仅仅是方法,则需要用抽象类,当然还有很多啦,你搜索下自己看,我刚才搜了下,有很多网友解释的很好,在此不再赘述!
第2个回答  2020-05-09
1. 抽象类可以有构造方法,接口中不能有构造方法。
2. 抽象类中可以有普通成员变量,接口中没有普通成员变量

3. 抽象类中可以包含静态方法,接口中不能包含静态方法

4. 一个类可以实现多个接口,但只能继承一个抽象类。

5. 接口可以被多重实现,抽象类只能被单一继承

6. 如果抽象类实现接口,则可以把接口中方法映射到抽象类中作为抽象方法而不必实现,而在抽象类的子类中实现接口中方法
相似回答