当前位置: 移动互联网学院 > Java培训 > JAVA开发 > Java接口和抽象类区别是什么
Java接口和抽象类区别是什么 时间:2017-09-22     来源:华清远见JAVA学院

Java接口和抽象类是两个比较容易混淆的概念,两者都没有具体的实现方法,结构上类似,但是在具体使用的时却有很大的区别。今天华清Java学院小编就和大家分享一下Java接口和抽象类的区别是什么

Java接口和抽象类区别

一、什么是Java抽象类?

抽象类是从多个具体的类中提取出共性行为放到父类中,这些具体类中不同行为在该抽象类中以抽象方法的形式来定义,在具体的子类中实现。

需要注意的是,抽象类是不能被实例化的类,但其他功能和普通类一样,例如成员变量、方法、构造函数等都可以用同样的方式访问。抽象类很明显的一个特征是类中的方法并没有具体实现,只是以抽象方法的形式进行定义。

二、什么是Java接口?

接口是特殊的抽象类,它比抽象类更加抽象。

Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。包含两种含义:一,Java接口,Java语言中存在的结构,有特定的语法和结构;二,一个类所具有的方法的特征集合,是一种逻辑上的抽象。前者叫做“Java接口”,后者叫做“接口”

三、Java接口和抽象类的区别是什么?

1.接口中只能包含抽象方法,而抽象类中可以包含普通方法

2.接口中不能定义静态方法,而抽象类可以定义静态方法

3.接口中只能定义静态常量属性,不能定义普通属性,而抽象类既可以定义普通属性,也可以定义静态常量属性

4.接口不包含构造器,而抽象类中可以包含构造器。抽象类中的构造器并不是用于创建对象,而是让子类调用这些构造器来完成属于抽象类的初始化工作

5.接口中不包含初始化块,而抽象类中可以包含初始化块

6.一个类多有一个直接父类,包括抽象类,但是一个类可以实现多个接口,通过实现多个接口来弥补java单继承的不足

X