区别如下:
1、继承关系:abstractclass抽象类可以继承一个类和实现多个接口;子类只可以继承一个抽象类。Interface接口只可以继承接口(一个或多个);子类可以实现多个接口。
2、访问修饰符:abstractclass抽象方法可以有public、protected和default这些修饰符。Interface接口方法默认修饰符是public。你不可以使用其它修饰符。
3、方法实现:abstractclass可定义构造方法,可以有抽象方法和具体方法。Interface接口完全是抽象的,没构造方法,且方法都是抽象的,不存在方法的实现。
4、实现方式:abstractclass子类使用extends关键字来继承抽象类。如果子类不是抽象类的话,它需要提供抽象类中所有声明的方法的实现。Interface子类使用关键字implements来实现接口。它需要提供接口中所有声明的方法的实现。
5、作用:abstractclass把相同的东西提取出来,即重用。Interface为了把程序模块进行固化的契约,是为了降低偶合。
扩展资料
abstractclass的定义:
含有abstract修饰符的class即为抽象类,abstract类不能创建的实例对象。含有abstract方法的类必须定义为abstractclass,abstractclass类中的方法不必是抽象的。
abstractclass类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法。如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型。
interface的定义:
接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为publicabstract类型,接口中的成员变量类型默认为publicstaticfinal。
参考资料来源:
参考资料来源: