You can write a Child Theme as for any other theme. This way you can
- extend the functionality
- override stuff that’s wrapped inside a
if ( ! function_exists('function_name') )
statement in the parent themes functions.php - override templates
There should be no real difference between such themes and normal themes.