Case classes are a special type of classes, that offer a number of features in addition to regular classes. Pattern matching, factory methods and object copying are only some of the benefits, but case classes also come with some limitations.
Start by reading Scala's documentation on Case Classes, which will provide you with a solid understanding of the why and how of case classes.
Next, watch this video by Alejandro Lujan in which he walks through some examples of using case classes in Scala, explains why they are beneficial, and shares some items to be mindful of.
Demonstrating Case Classes in Scala - BoldRadius Blog
Lastly, read this post by Daniel Spiewak in which he explains what case classes are, how to use them, and what makes them so useful.
Think you've got a handle on Case Classes? Prove it!