【问题标题】:Perl : inheritance - base and child classPerl:继承 - 基类和子类
【发布时间】:2014-01-17 13:30:04
【问题描述】:

是否可以在另一个位置导入与包名称相同名称的基类?

package Foo;
use base 'Foo';

我必须使用 'Foo' 作为位于另一个位置的基类。有可能吗?

【问题讨论】:

  • 您可以在它之外重新打开包并添加到它(不需要继承)。
  • 包名在 Perl 解释器中是全局唯一的。您不能有两个同名的不同包。声明一个已经存在的 package 只是重新进入现有的上下文。

标签: perl inheritance base


【解决方案1】:

不,你不能那样做。基类是 Perl 查找当前包中未定义的方法的地方。

如果你写了这样的东西,而 Perl 找不到 Foo::method,那么它将在基类 Foo::method 中查找,因此搜索将是无止境的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-23
    • 1970-01-01
    • 2018-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多