Mar*_*ers 17

它们非常相似,但存在一些重要的技术差异:

  • 抽象类允许您为某些方法提供默认实现,但接口不允许您提供任何实现.
  • 您可以实现多个接口,但只能从一个抽象类继承.

这些差异会影响这两种技术的使用方式:

  • 您应该使用接口来定义合同.
  • 抽象类可以用于重用代码 ......但请注意,它不是重用代码的唯一方法.您还应该考虑其他方法,例如收容.