先看程序:
程序输出结果为:fruit;
解释如下:虽然Apple类没有name属性,但其从Fruit类继承而来,故可以访问父类对象的name属性;
也可以认为Fruit类将他的name属性传给了Apple类,即Apple类也有name属性;但是若在Apple类中添加String name;
程序输出结果为null; 所以可以更具体的解释为:
/important
子类的name的属性的值"fruit"不是通过构造函数传给子类,而是访问父类的属性值;在new()生成子类对象时,先生成父类对象,即内存存在两个对象(挨着),返回子类对象的地址,则子类对象可以访问父类的方法与属性;当在Apple类中添加String name;时,输出结果为null;
从上看来:可以认为,子类并没有生成自己的name属性,只是可以通过子类访问父类的属性;
important/