perl - Perl 中的多级继承

标签 perl oop inheritance

我有一个关于 Perl 中的多级继承的问题。

这是我的代码

mod.pm

package first;

sub disp {
    print "INSIDE  FIRST\n";
}

package second;
@ISA = qw(first);

sub disp {
    print "INSIDE SECOND\n";
}

package third;
@ISA = qw(second);

sub new {
    $class = shift;
    $ref   = {};
    bless $ref, $class;
    return $ref;
}

sub show {
    $self = shift;
    print "INSIDE THIRD\n";
}

1;

prog.pl

use mod;

$obj = third->new();
$obj->show();
$obj->disp();

我有一个包含三个类的 .pm 文件。我想使用第三类的对象访问第一类中的 disp 方法。我不确定它是如何工作的。

我尝试使用两种方式访问​​:

  1. 使用类名 => first::disp()
  2. 在第二个包中使用 SUPER 方法 => $self->SUPER::disp();

但不确定如何使用第三类对象直接访问它。

最佳答案

$obj->first::disp(),但是你要求做的是你绝对不应该做的事情。修正你的设计。

关于perl - Perl 中的多级继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40792850/

相关文章:

java - 如果我有 ArrayList 的子类,我可以在不调用 super.iterator() 的情况下迭代其元素吗?

linux - 在 perl 中的 SSH 中执行第二次 SSH

perl - 在 Perl 上搜索文件

c++ - 我怎样才能使我的类更加独立于平台?

PHP - 从对象实例调用静态函数有效吗?

java - 未定义 Base 类型的子方法

python - Python 中的继承和组合,不好的做法?

perl - PDF::API2 是否支持使用压缩的外部参照读取 PDF 1.5+?

perl - 在 OpenBSD 上构建 perl 扩展模块

javascript - 将 for in 替换为带有对象的常规 for 循环