Last week, I wanted to "see" the whole picture, and put together this chart which shows the heirarchy of all of the user interface components that ship with GWT. Originally I wanted to include all of the interfaces as well, but I couldn't find a way to do it that wasn't totally confusing.
In the chart the orange rectangles represent abstract classes, and the while one are concrete classes. There are two classes which I put an orange border on, but did not color them in orange. These two are the Widget and TextBoxBase classes. The TextBoxBase does has a protected constructor, so I am not sure why it is not abstract. The Widget class on the other hand is a little more interesting. You can create a new instance of the Widget class, but since the setElement() method is protected you can't really do anything with it. I am assuming that this was an error and that the Widget class should have been made abstract.