Inheritance between Widgets

I would like be able to take an existing widget (inthis case, a button) and be able to have another item (possibly a web block?) inherit from it in a similar way that a class inherits from another in object-oriented programming.  Specifically, I'd like something to inherit all functionality of a Button widget and automatically apply a few styles.

My current use case is that I have a specific set of styles for an assortment of buttons.  Instead of requiring the developer to manually enter the styles (and therefore know what the styles are) for each type of button, I'd like them to be able to drag and drop extensions of that button that have those styles-prefilled.

As a concrete example:
    To make a button a "type1" button, I need to apply styles "a b c".  To make a button a "type2" button, I need to apply styles "a b d".
   I would like to be able to drag an item called "type1 Button" (possibly a web block?) that creates a button for me and automatically applies styles "a b c", and similar for the "type2" button.

Is there any way I can do this?