接口和抽象类的区别

177 阅读1分钟

接口和抽象类的区别:

  1. 抽象性:

    • 接口中的所有方法都是抽象的,没有方法体。而抽象类可以包含抽象方法(没有方法体)和非抽象方法(有方法体)。
  2. 多继承:

    • 一个类可以实现多个接口(多继承),但只能继承一个抽象类。
  3. 实例化:

    • 接口不能被实例化,它只提供了一种规范。抽象类也不能被实例化,但可以包含构造方法,被用于被其它类继承。
  4. 成员变量:

    • 接口中的成员变量默认是 public, static, final 的。抽象类中的变量可以是各种修饰符,包括 private, protected, public, static, final 等。
  5. 成员方法:

    • 接口中的方法默认是 public 的。抽象类的方法可以有各种访问修饰符。
  6. 构造方法:

    • 接口没有构造方法。抽象类可以有构造方法,并在实例化时被调用。
  7. 关系:

    • 接口主要用于实现多继承,定义类的行为。抽象类用于被继承,是对类的抽象,可以包含一些通用的方法和属性。

总体来说,接口更加灵活,适合定义规范和行为,而抽象类更适合代码复用,包含一些通用的方法和属性。