I have a superclass called
is it considered acceptable to make them protected?
Yes. I don't think it will break the law of encapsulation when you use
protected modifier. Allow only the subclass to access the instance, we still control what should be accessed by others and who can access the instance.
I could use getter methods in the subclasses to get the instance variables, but that seems bizarre in this case
In some cases, you want to do some preprocessing before others can access the instance and you can put the preprocessing in the Getter.