Because the visibility is private (where only the class that defines it can access it) methods that use it can't be overridden and still have access to the options (including the constructor). An extending class can't change the defaults.