这是很常用但又是很难回答的设计面试问题。接口和抽象类都遵循”面向接口而不是实现编码” 设计原则,它可以增加代码的灵活性,可以适应不断变化的需求。下面有几个点可以帮助你回 答这个问题:

  1. 在一些对时间要求比较高的应用中,倾向于使用抽象类,它会比接口稍快一点。

  2. 如果希望把一系列行为都规范在类继承层次内,并且可以更好地在同一个地方进行编 码,那么抽象类是一个更好的选择。有时,接口和抽象类可以一起使用,接口中定义函 数,而在抽象类中定义默认的实现。