I have an abstract class, relation in package database.relation and a subclass of it, Join, in package database.operations
If protected, your instance of Join cannot access the mStructure in other instances (relRight, relLeft) outside the package.
EDIT:
The table here explains this situation fairly well. I marked the culprit in your question with []s
Access Levels
Modifier Class Package Subclass World
public Y Y Y Y
protected Y [Y] Y N
no modifier Y Y N N
private Y N N N