Perl 面向对象之基类(use base)

use base somemodule; # 相当于以下两句的结合: BEGIN{ use somemodule (); push @ISA, qw(somemodule); } # 也可以同时 use base 两个或者两个以上的模块,即多继承,例如: use base qw(Foo Bar); BEGIN { use Foo (); use Bar (); push @ISA, qw(Foo Bar); } Perl 里

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use base somemodule;

# 相当于以下两句的结合:

BEGIN{
use somemodule ();
push @ISA, qw(somemodule);
}

# 也可以同时 use base 两个或者两个以上的模块,即多继承,例如:

use base qw(Foo Bar);

BEGIN {
use Foo ();
use Bar ();
push @ISA, qw(Foo Bar);
}
  • Perl 里 类方法通过 @ISA 数组继承,这个数组里面包含其他包(类)的名字,变量的继承必须明确设定。
  • 多继承就是这个 @ISA 数组包含多个类(包)名字。
  • 通过 @ISA 只能继承方法不能继承数据

参考文献


Perl 面向对象之基类(use base)
https://www.frytea.com/post/20210826003933.html
作者
Tianlun Song
发布于
2021年8月26日
更新于
2024年6月10日
许可协议