一尘不染

抽象类可以/可以代替接口吗?

java

在Java中,您可以创建一个仅包含抽象方法的抽象类。另一方面,您可以创建一个声明相同方法的接口。在这种情况下,可以使用抽象类代替接口吗?


阅读 284

收藏
2020-09-09

共1个答案

一尘不染

不总是:

  • 一堂课只能延伸 堂课
  • 一个类可以实现 多个 接口

Sun文档
进行了更详细的比较:

抽象类与接口

与接口不同,抽象类可以包含非静态和最终字段,并且可以包含已实现的方法。此类抽象类与接口相似,不同之处在于它们提供了部分实现,将其留给子类来完成实现。如果抽象类仅包含抽象方法声明,则应将其声明为接口。

可以通过类层次结构中任何位置的类来实现多个接口,无论它们是否以任何方式相互关联。例如,考虑可比或可克隆。

相比之下,抽象类通常被子类化以共享实现。单个抽象类由相似类的子类继承,这些相似类具有很多共同点(抽象类的实现部分),但也有一些区别(抽象方法)。

2020-09-09