Here the catch is, 1)Any class in the package com.one, can access protected memeber through instance creation like ... A a = new A(); a.i
2)But coming to package com.two, No class is allowed to access i through instance. Its only private to subclasses in the sense like the relation ship between Parent and Child. Every child will see it as protected only. the access modifier won't change.