接口和抽象类的区别

Posted lanjianblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口和抽象类的区别相关的知识,希望对你有一定的参考价值。

  1. 接口的方法默认是public abstract,所有方法在接口中不能有实现,抽象类可以有非抽象的方法。(从 Java 8 开始,接口也可以拥有默认的方法实现,这是因为不支持默认方法的接口的维护成本太高了。在 Java 8 之前,如果一个接口想要添加新的方法,那么要修改所有实现了该接口的类。)
  2. 接口中的实例变量默认是private final static类型的,而抽象类中则不一定。
  3. 一个类可以实现多个接口,但最多只能继承一个抽象类。
  4. 一个类实现接口的话要实现接口的所有方法,而抽象类不一定。
  5. 接口中不能有构造函数,而抽象类中可以有构造函数。
  6. 从设计层面来说,抽象是对类的抽象,是一种模板设计,是IS-A的关系,而接口是行为的抽象,是一种行为的规范,是LIKE-A的关系。

以上是关于接口和抽象类的区别的主要内容,如果未能解决你的问题,请参考以下文章

接口和抽象类的区别

接口和抽象类的区别

接口和抽象类的区别

接口和抽象类的区别是什么?

接口和抽象类的区别是什么?

接口和抽象类的区别