日期:2014-05-20  浏览次数:20813 次

创建一个子类对象的同时一定会创建 一个父类对象吗?
Java code

class Father
{
    //……
}
public class Son extends Father
{
    public static void main(String[] args)
    {
        Son son=new Son();//这条语句会同时创建一个父类对象吗?如果创建了,怎么去引用它
    }
}



------解决方案--------------------
没有创建父类对象,如果真的这么样的话,创建一个子类的对象,那就创建一个父类的对象,也太耗费资源了。即使你Father f = new Son();这个对象也是子类对象。
------解决方案--------------------
不会。创建一个对象就是一个对象,只是会调用父类的构造函数而已。参考这里:

http://blog.csdn.net/yidinghe/archive/2009/01/21/3839483.aspx
------解决方案--------------------
探讨
引用:
不会。创建一个对象就是一个对象,只是会调用父类的构造函数而已。参考这里:

http://blog.csdn.net/yidinghe/archive/2009/01/21/3839483.aspx

对象是通过调用 类的构造函数 构造出来的,既然父类的构造函数都已经被调用了,为什么不会同时构造出一个父类的对象呢?
我的意思是:只要构造函数被执行,就一定会生产出一个对象出来,请指点一下,

------解决方案--------------------
没研究过JVM--但是有可能是父类和子类同时指向一个地址。父类在列表最前端,所以通过(父类)子类 这种方式可以转化成父类对象。

对象只是一种思想,要是以内存占用的角度,那就是创建了父类对象。