user widget widget blueprint widget class の違いを教えて!

私は未熟ながらUnreal Engineにてアプリを作成しようと日々奮闘しております。以下の件についてご教授いただければと思います。

widget変数を作成した場合、型がwidget widget blueprint widget user widgetと様々な種類があります。またそれぞれの参照にはオブジェクト参照、クラス参照、ソフトオブジェクト参照、ソフトクラス参照とまたそれぞれあります。

教えていただく量が多いのですが、それぞれ教えてもらいたいです!
よろしくお願いします。