抽象类和接口的区别

来源:互联网 发布:电磁炉 知乎 编辑:程序博客网 时间:2024/06/07 13:49

接口和抽象类都是表示抽象的实物,而接口可以看做是抽象类的完全抽象版本。

首相类用 abstract class声明,接口用interface表示。

他们在语法中的区别:

1,抽象类中可以有非抽象的普通方法,而接口中所有的方法都必须是抽象的2,抽象类中的字段可以为任意的,但是接口中的字段都被 static final 修饰3,抽象类中可以有构造函数,而接口中不能有。4,抽象类中可以包含静态方法,而接口中不能。5,抽象类中的方法可以是任意修饰符修饰的,而接口中的方法默认为 public abstract。

但是接口对于抽象类来说可以被子类多实现,而抽象类只能被单继承。所以接口在解决代码的扩展性上来说更加出色。抽象类的功能要远超过接口,但是,定义抽象类的代价高。