3

この質問は、PerlとMooseの継承に関するものです。

親クラスと赤ちゃんクラスがあるとします。赤ちゃんは'親を拡張します。両方のクラスに属性「name」がある場合、Babyは自分の名前を取得せずに親の名前にどのようにアクセスしますか?

package Baby;
use Moose;
extends 'Parent';

has 'name', is => 'ro', isa => 'Str', default => 'Baby';

注:親クラスは基本的に同じで、名前はdefault=>'Parent'です。

だから問題は、私のプログラム内でどのように親の名前にアクセスするのかということです。

例えば:

...
$baby = Baby->new();
say "my name is " . $baby->name();
say "my Parent's name is " . ???? 

ありがとう!

4

1 に答える 1

5

あなたはそうしない。新しい属性を作成していません。親クラスのものをオーバーライドしただけです。サンプル クラスに選択した名前は本当に残念です。現実の世界では、赤ちゃんは親を「持つ」からです。

于 2012-11-08T18:38:33.647 に答える