Perl中的多级继承

s.p*_*tra 3 oop perl 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;
Run Code Online (Sandbox Code Playgroud)

prog.pl

use mod;

$obj = third->new();
$obj->show();
$obj->disp();
Run Code Online (Sandbox Code Playgroud)

我有一个.pm文件,其中包含三个类.我想disp使用第三类对象访问第一个类中的方法.我不确定这是怎么回事.

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

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

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

ike*_*ami 5

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