Pergunta de entrevista da empresa Intuit

When would it be appropriate to use an abstract class, and when would you want to implement an interface rather than extending a class?