Pregunta de entrevista de Tavant

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