If the two classes involved are of the same package: Same Class (Class Level) Access Ownership ------------ ------- --------- private Y Owned no specifier Y Owned protected Y Owned public Y Owned * Same package? --> Does NOT come into play Subclass Level Access Ownership -------------- ------- --------- private N Not inherited no specifier Y Inherited protected Y Inherited public Y Inherited UnrelatedClass Level (World Level) Access Ownership ---------------- ------- --------- private N Not inherited, Not owned no specifier Y Not inherited, Not owned protected Y Not inherited, Not owned public Y Not inherited, Not owned If the two classes involved are of two different packages: Same Class (Class Level) Access Ownership ------------ ------- --------- private Y Y no specifier Y Y protected Y Y public Y Y * Same package? --> Does NOT come into play Subclass Level Access Ownership -------------- ------- --------- private N Not inherited no specifier N Not inherited protected N Inherited <-- INTERESTING public Y Inherited UnrelatedClass Level (World Level) Access Ownership ---------------- ------- --------- private N Not inherited, Not owned no specifier N Not inherited, Not owned protected N Not inherited, Not owned public Y Not inherited, Not owned *INTERESTING: That means, in Subclass, it has no access to the data member of an object of its Superclass if that data member is "protected" in the Superclass. However, it has access to that data member of an object of the same Subclass.