When should I make member variables protected and when should I make them private? Is it a good practice to ignore protected variables? It seems to me that most of the time, you don’t want your subclass to be able to modify the member variables of the super class.
In general, any member variable that you do not want another class to access should be
private. But it is not wise togeneralize about when to use given access modifiers. What access modifier you use for a class member variable depends on your overalldesign framework. If a class is intended to be subclassed, you may or not want to make some of its variables and methods
protected access modifierwill allow subclasses to access the method or variable directly. This can be very desirable when you want subclasses to be able to modifybehavior that you don’t want to be publicly accessible. Similarly, default access is desirable when you want other classes in a packageto access a class’s method or variable, but you don’t want classes outside of the package to have the same access. You just have to think carefully about the purpose of a class and how it will be used before you decide which access modifiers to use.