当前位置: 移动互联网学院 > Java培训 > JAVA面试题 > Java接口与抽象类区别有哪些
Java接口与抽象类区别有哪些 时间:2017-07-24     来源:华清远见JAVA学院

面试是找到好工作很重要的环节,所以要事先作足准备,熟悉各种面试题。今天,华清Java就业老师就给大家分享一下:Java接口与抽象类区别有哪些?

[Java面试题]Java接口与抽象类区别有哪些?

什么是抽象类?

声明方法的存在而不去实现它的类被叫做抽象类 (abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。

什么是接口?

接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个 有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。 然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到 接口类型或从接口类型转换,instanceof运算符可以用来决定某对象的类是否实现了接口。

Java接口与抽象类的区别是什么?

interface被继承时用的关键字是implements,而且可以同时implements多个interface,而abstract class被继承时用的关键字是extends,而且只能同时extends一个abstract class。

interface内定义的方法都是public的,而abstract class内的则不一定。

interface内定义的成员对象都是static & final的,而abstract class不是

interface的方法不能有默认实现,只有一个申明,而abstract class内申明abstract的方法不能有实现,非申明abstract的方法可以有默认实现。

interface被implements时,所有方法都必须被实现,必须申明是public的,而abstract class被extends时只有abstract的方法才必须被实现,别的有默认实现的直接被继承过来。

以上就是为大家整理的Java面试题关于Java接口与抽象类区别有哪些的解答,希望对大家有所帮助,也预祝大家求职顺利。

X