abstractclass和interface有什么区别

更新时间:02-09 教程 由 初遇 分享

区别如下:

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。

参考资料来源:

参考资料来源:

声明:关于《abstractclass和interface有什么区别》以上内容仅供参考,若您的权利被侵害,请联系13825271@qq.com
本文网址:http://www.25820.com/tutorial/14_2106277.html