我是否需要使用类在Perl中的子类中使用它的方法?

时间:2009-11-29 11:32:07

标签: perl oop inheritance

好的,在Perl编码,只是有一个快速的问题。我创建了一个名为SubtitleSite的类,它基本上是一个抽象,以及一个名为podnapisi的类,它继承了SubtitleSite:

@ISA = qw(SubtitleSite);

我的问题是,我必须使用:

use SubtitleSite;

是否可以访问SubtitleSite中的所有方法?

5 个答案:

答案 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