Pergunta de entrevista da empresa Tavant

When to use abstract class and when to use interface in Java?