Inheritance-java

来源:互联网 发布:history.js 编辑:程序博客网 时间:2024/06/05 21:49

先看程序:

程序输出结果为:fruit;

解释如下:虽然Apple类没有name属性,但其从Fruit类继承而来,故可以访问父类对象的name属性;

也可以认为Fruit类将他的name属性传给了Apple类,即Apple类也有name属性;但是若在Apple类中添加String name;

程序输出结果为null;   所以可以更具体的解释为:

/important
 子类的name的属性的值"fruit"不是通过构造函数传给子类,而是访问父类的属性值;在new()生成子类对象时,先生成父类对象,即内存存在两个对象(挨着),返回子类对象的地址,则子类对象可以访问父类的方法与属性;当在Apple类中添加String name;时,输出结果为null;
从上看来:可以认为,子类并没有生成自己的name属性,只是可以通过子类访问父类的属性;
important/