I get a lot of warnings in eclipse like these:
Variable ‘myVariable’ must be private and have accessor methods.
I think I get them because I didn’t set protectedAllowed manually to true in eclipse. But why is it set to false by default? Shouldn’t I use protected attributes?
Theoretically, protected attributes (variables) are an anti-pattern in object-oriented languages. If only subclasses need to access member attributes of its superclass, define the attributes themselves as private and create protected accessor methods (getter and setter). This approach applies the concept of ‘information hiding’. There is an alternative solution: define protected immutable (final) member attributes.
Further readings: