package Object::Animal::Base;
use Pony::Object -abstract;

    protected format => '%s says %s';
    private __format => '%s says %s again';
    
    sub getType : Public
        {
            my $this = shift;
            return $this->type;
        }
    
    sub say : Public
        {
            my $this = shift;
            return sprintf( $this->format, $this->type, $this->word );
        }

    sub sayAgain : Public
        {
            my $this = shift;
            return sprintf( $this->__format, $this->type, $this->word );
        }
    
    sub inc : Abstract;

1;
