Make ExtensibleObject constructor `protected` given it is an abstract class