Java中抽象类和接口的区别

1. 接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值。抽象类中的变量默认是 friendly 型,其值可以在子类中重新定义,也可以重新赋值。

2. 抽象类不能多继承,接口可以多实现。

3. 抽象类可以有具体的实现方法,接口的方法不能有具体实现。

4.abstract class和interface所反映出的设计理念不同。其实abstract class表示的是"is-a"关系,interface表示的是"like-a"关系。 

原文地址:https://www.cnblogs.com/interfacehwx/p/6398526.html