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

小问题看看
在子类继承父类之后,new子类时,父类会在堆内存分配空间吗?
如下:
class A {}
class B extends A{
     public static void main(String[] args) {
new B();
}
}
当程序执行完new B()的时候,会在堆内存为B对象分配内存空间,我的问题是:
B的父类A也会在堆内存分配空间吗?还是单纯的调用父类的构造方法而已?
谢谢!

------解决方案--------------------
因为你只new了一个对象,所以分配的是一个对象的内存空间,但是这个空间有一部分(属于A类属性)是可以被A类访问的。
------解决方案--------------------
会分配堆内存空间。默认的情况下构造子类对象父类的构造会被先调用的。
------解决方案--------------------
必须会,不然怎么调用父类方法
------解决方案--------------------
会,new子类首先会实例化父类