What are the differences between a class component and functional component?

What are the differences between a class component and a functional component?