Pergunta de entrevista da empresa L3Harris

What is the difference between an Interface, Abstract class, and normal class in OOP and why would you use each one?