Pergunta de entrevista da empresa John Deere

1.What is difference between interface and abstract class? Which one to use , what is the criteria?