2012-11-08 19 views
2

이 질문은 Perl과 Moose 상속에 관한 것입니다.동일한 속성 이름을 가진 무스 부모와 자식

부모 클래스와 아기 클래스가 있다고 가정합니다. 아기는 부모를 '연장'합니다. 두 클래스 모두 'name'속성을 가지고있는 경우 아기가 자신의 이름을 얻지 않고 부모 이름에 어떻게 액세스합니까?

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 " . ???? 

감사합니다!

답변

5

그렇지 않습니다. 새로운 속성을 만들지 않았습니다. 부모 클래스에서 하나를 재정의했습니다. 실생활에서는 아기가 "부모"를 가졌지 만, 상속을 사용하면 Baby가 "부모"인 상황을 만들었 기 때문에 예제 클래스에 대해 선택한 이름은 실제로 불행합니다.

+0

고마워요! 그건 나에게 의미가있다. – CodeWriter