package HTML::TreeBuilder;
sub element_class { return "HTML::Element"; }
...
sub make_sub_node {
...
my $ele = $self->element_class->new(...); #makes an HTML::Element perhaps
..
}
####
package My::TreeBuilder;
use base qw(HTML::TreeBuilder);
sub element_class { return "My::Element" };
package My::Element;
use base qw(HTML::Element);
sub my_additional_method { ... }