On Tue, Aug 16, 2005 at 01:33:56AM +0800, Autrijus Tang wrote:
: On Mon, Aug 15, 2005 at 08:19:38AM -0700, Larry Wall wrote:
: > I think the distinction is still useful to document that there are
: > still unbound types. What we need to emphasize is that a role can be
: > used as a class, at which point any unbound types are bound to Any,
: > or whatever we're calling it these days. I'd say Array is a role,
: > not a class. So these all might do different things:
: >
: > class LoudArray is Array { ... }
: > role LoudArray does Array { ... }
: > role LoudArray is Array { ... }
:
: So the last line means a role can be used just like a class, and
: _inherit_ its behaviour as well?
:
: role Point { has $.x; has $.y; method move_right { $.x++ } };
: role MyPoint is Point {
: method move_right { ./SUPER::move_right(); $.y++; }
: }
It means that when MyPoint is finally nailed down into a class, that
class will inherit from Point. The role itself doesn't inherit.
Larry