All properties should be changed to private to ensure consistency between them. If you allow child classes to mess with them directly, you cannot rely on the consistency between them anymore (while the logic does)