private 的属性和方法是不能被继承的。能继承public,default,protected 的属性和方法。所以此程序中子类继承了父类的属性i,子类中的i与父类中的i不是同一个i,但是子类中的i是从父类继承过来的,i 的值从0变成2再变成5,其实子类的构造方法中隐藏了一个this关键字,就是this.i=5,谁调用的它改变的就是谁的i 的值,显然是身为Super类型的d所指的对象调用的,所以改变的是身为Super类型的d的属性i 的值,所以最后输出的是d.i,这时的d是Super类型的,所以值就为5了 |