| 本帖最后由 曛丨黯淡浮华 于 2014-12-10 01:09 编辑 
 1. 子类不能继承父类的private属性,方法。
 
 2. 既然不能继承,那么父类一般情况下会暴露出去2个方法,通过这2个方法来调用vaule ~
 
 3. 这2个方法分别是setValue() , getValue()
 
 4. 子类初始化的时候,调用了自身的构造函数,里面又再调用了super(),  这个super()是隐式的。
 
 5. 也就是说,当子类实例化,那么父类也会随着子类实例化,这是绑定关系。
 
 6. 然后value 就有在内存开辟一个空间,并且赋于 1 的值,
 
 7. 但是,你的子类构造函数调用了父类的构造函数  super(i), 也就说明,你的父类构造函数已经
 
 初始化了 , 隐式也不再执行了, 然后你的构造函数又一次的为value赋值,
 
 也就是说,假设你的子类构造函数,传入一个10 ,那么value就不是1了,而是10了,
 我写了个比较简单的例子,你看清楚 ——
 
 
 复制代码
class Fu
{
        private int value = 1;
        public void setValue(int value)
        {
                this.value = value;
        }
        public int getValue()
        {
                return value;
        }
}
class Zi extends Fu
{
        public Zi(int value)
        {
                setValue(value);
        }
        public static void main(String[] args)
        {
                Zi zi = new Zi(10);
                System.out.println(zi.getValue());
        }
}
 
 
 |