Veja o link para uma comparação entre Cor e Moose. Código de amostra:
classe Ponto {
tem ($x, $y):leitor:escritor:novo:isa(Int);
método claro() {
($x, $y) = (0, 0);
}
}
classe Ponto3D isa Ponto {
tem $z :leitor :escritor :new :isa(Int);
método claro() {
$self->próximo::método;
$ z = 0;
}
}
Fonte: linux.org.ru