Thanks for your answer! My preferred declaration of ClassB is as follows:
package ClassB;
use Moose;
extends 'ClassA';
has '+param1' => (default => 'PARAM1-CLASSB');
has '+param2' => (default => 'PARAM2-CLASSB');
But since this doesn't work for the param1, I figured to use FOREIGNBUILDARGS and BUILDARGS to have some similarity in usage. Your builders solution seems to do this better though. So thank you very much for the idea!
But if I could change ClassA to allow above syntax for ClassB that would be awesome