接口和抽象类都是表示抽象的实物,而接口可以看做是抽象类的完全抽象版本。
首相类用 abstract class声明,接口用interface表示。
他们在语法中的区别:
1,抽象类中可以有非抽象的普通方法,而接口中所有的方法都必须是抽象的
2,抽象类中的字段可以为任意的,但是接口中的字段都被 static final 修饰
3,抽象类中可以有构造函数,而接口中不能有。
4,抽象类中可以包含静态方法,而接口中不能。
5,抽象类中的方法可以是任意修饰符修饰的,而接口中的方法默认为 public abstract。
但是接口对于抽象类来说可以被子类多实现,而抽象类只能被单继承。所以接口在解决代码的扩展性上来说更加出色。抽象类的功能要远超过接口,但是,定义抽象类的代价高。