Tavant interview question

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