继承时候父类的私有变量的问题


public class A {
private String name= " parent";
public void print(){
System.out.println(name+"**********");
}
}

public class B extends A{
private String name = "child";

}

public class Test {
public static void main(String[] args) {

B b =new B();
b.print();
}

}


运行结果如下
parent**********
通过父类的方法能访问父类的变量 达人来讨论下这个问题
我原先觉得 name 是private的时候打child,public default才能打parent,可是结果如上

属性不存在重写,方法才能重写~

所以b.print(); 调用的还是A的print

只要你在A里面写了print,那就是child了。。。

而这不是说你重写了父类的属性...

不能继承父类的私有属性,在new一个对象的时候,是先初始化父类的成员变量的,所以应该是parent
我觉得是这样

你得在B类里重写print()方法

你看一下 thinking in java 吧,里面有讲执行顺序...
比如: 父类先于子类执行.
变量的执行顺序等.