好的,在Perl编码,只是有一个快速的问题。我创建了一个名为SubtitleSite的类,它基本上是一个抽象,以及一个名为podnapisi的类,它继承了SubtitleSite:
@ISA = qw(SubtitleSite);
我的问题是,我必须使用:
use SubtitleSite;
是否可以访问SubtitleSite中的所有方法?
答案 0 :(得分:11)
是的,但大部分时间你最好不要直接弄乱@ISA
。只需use parent qw(SubtitlesSite);
,它就会为您加载SubtilteSite
并将其添加到@ISA
。
答案 1 :(得分:3)
答案 2 :(得分:2)
YES。
否则,在podnapisi中未定义SubtitleSite中定义的符号。
答案 3 :(得分:0)
为了访问这些方法,您必须继承它,或者委托给它的类型的对象。
答案 4 :(得分:0)
如果你正在你的子类中构建一个对象,你可以自己调用方法,并通过继承的魔力找到它们(有关SUPER
的更多信息,请参阅perldoc perlobj):
sub foo
{
my $this = shift;
$this->method_on_parent; # this works!
$this->SUPER::foo; # this works too
}
但是,如果这些类只是不使用OO的库函数,则必须明确告诉Perl在哪里找到该函数:
ParentClass::function; # use the class name explicitly