Composition vs Inheritance

A Stack has-a List
A Square is-a Shape.

Due to us using a Widget as abstract, when we implement from it, we’re of type Widget.
So class Button needs a type Widget, and we can use any.