如果父类与子类均有同名一个成员变量,但是父类成员被protected修饰如何访问父类的该成员.

解决方案 »

  1.   

    super.protectedField
      

  2.   

    package zpc.databaseTest;
    public class Father {
        private String name="";
        private int a=12;;
        protected void test1(){
            System.out.println("name="+name);
        }
         
        public void test2(){
            System.out.println("2="+test3());
        }
        private int test3(){
            return 2;
        }
    }
     
    package TinkingJava;
    import zpc.databaseTest.Father;
    public class Son extends Father{
        public static void main(String[] args){
            Father f=new Father();
            f.test1();//test1()是protected的啊
             
            Son s=new Son();
            s.test1();//这里不报错
            s.test2();
            //s.test3();//private的当然不能访问
        }
         
    }
    跟这样可以访问,就是调用父类的方法,把私有属性在方法中进行处理
      

  3.   

    protected子类不是可以直接访问么
      

  4.   


    public class Father {
    protected String value = "father value!"; 
    }public class Son extends Father{
    private String value = "Son value";

    public static void main( String[] args ) {
    Son s = new Son();
    s.print();
    }

    public void print(){
    System.out.println( value );
    System.out.println( super.value );
    }
    }
    运行结果
    Son value
    father value!