n.r*_*.r. 5 oop perl inheritance
我正在编写一个hOCR::Element包HTML::Element来处理hOCR内容.因此,hOCR::Element该类中的对象继承了属于的所有方法HTML::Element.
但是由于有许多基本方法HTML::Element(例如find_by_tag_name和look_down)返回HTML::Element对象,我认为自己必须为每个这样的方法编写一个相应的hOCR::Element包装方法,它只是按照hOCR给出的方式将祝福映射为HTML.
例如:
package hOCR::Element;
use HTML::Element;
use parent 'HTML::Element';
sub new {
my ($class, %params) = @_;
my $self = $class->SUPER::new (%params);
return bless $self, $class;
}
sub look_down {
my $self = shift;
return map { bless $_, 'hOCR::Element' } $self->SUPER::look_down (@_);
}
1;
Run Code Online (Sandbox Code Playgroud)
我怎样才能让子类继承其基类中的所有方法,使得这些相关方法返回子类对象而不是基类对象,而不必为每个这样的父方法编写包装器?
小智 -2
sub look_down {
my $self = shift;
return bless $self->SUPER::look_down (@_) ,HTML::Element ;
}
Run Code Online (Sandbox Code Playgroud)