java - Access to protected field in field of same parent? -


why have access , visibility of protective fields inside classes share same parent? figured protected accessed through parent or child not outside in way.

class parent {      protected int age; }  class sister extends parent { }  class brother extends parent {      public void mymethod(sister sister) {         //i can access field of sister,         // when protected.         sister.age = 18;         // every protected , public field of sister visible         // want reduce visibility, since protected fields         // have public getters , setters creates         // visibility.     } } 

so guess it's protected outside of family. why , how can have hidden family members other direct parent , child? me seems we're lacking access member modifier. family should protected , protected should hidden child , parent. i'm not asking rewrite java, noticing.

that because classes parent, brother , sister in same package. members within same package visible, except private modifier.

this code:

public class sister {      void somemethod() {         brother brother = new brother();         brother.age = 18;     } } 

means working in sister class, , there, you're trying access age member of brother class. brother has nothing sister, except fact accidentally extend same parent class.

the reason accessing age member valid, because brother , sister within same package. try move either brother or sister package, , you'll see compiler starts complaining.


Comments

Popular posts from this blog

yii2 - Yii 2 Running a Cron in the basic template -

asp.net - 'System.Web.HttpContext' does not contain a definition for 'GetOwinContext' Mystery -

mercurial graft feature, can it copy? -