Those private members and attributes are still in your subclasses. Your subclasses just cannot access them directly. Protected access hides the class's methods and attributes from classes that exist outside of the class's package. This means that classes within the same package can access protected methods and attributes. When subclassing, the class' subclasses can also access the protected methods and attributes.
Public methods are open for anyone to see.
Package protected allows access only to those classes appearing in the same package. When subclassing, only the subclasses that appear in the same package can access package protected methods and attributes. Note that attributes should never be public. If other objects need access to attributes, create getters and declare them as final . Best reserved specifically for subclass use.