No I don't make base classes or abstract classes until I have at least 3 implementations. I've found that building base classes before you have common behavior leads to broken base classes that contain un-common behavior.

When I get a few more widgets made I'll derive a base class.