You can't do what you asked. If you could, you could relax the property setting validation to the point where your subClass instance wouldn't be a valid superClass instance.
You may be able to do what you want, however. Your superClass's property setter could call a normal instance method that subClass could overload. See the trustedSubclassSetterHelper methods in the attached superClass495080 and subClass495080. That helper doesn't actually set the property (otherwise you get into a loop) but merely provides the updated value. This means that the value would have to be something both superClass495080 (in set.prop1) and subClass495080 (in trustedSubclassSetterHelper) accept as a valid value.
>> Q = superClass495080
Q =
superClass495080 with properties:
prop1: 'Hello!'
prop2: 'My name is'
>> Q2 = subClass495080
Q2 =
subClass495080 with properties:
prop3: 'Dom.'
prop1: 'Hello World!'
prop2: 'My name is'