Wanting to revise the elements within a widget, but do not want to continually update the theme elements.

How do I separate the widget update (e.g. WP_Calendar_Widget in default-widgets.php) so I can change the elements of it – without having to modify the theme or the core codebase?

Thanks in advance.