首页 新闻 会员 周边

JAVA中 抽象方法中的属性在被子类对象调用时,存放在内存中的什么地方?

0
悬赏园豆:50 [已解决问题] 解决于 2016-06-12 20:52

在每个子类实例化时,如果父类不是抽象类,都要先给父类实例化开辟空间。

然而抽象类无法实例化,那么当子类实例化的时候,抽象类中的非抽象属性存在内存中的什么地方呢?

如果抽象类的某一个作用是节省内存空间,如果抽象类的属性存储在子类对象的内存空间中,是否会增加子类空间大小?达不到节约空间的效果呢?

YouDefineMe的主页 YouDefineMe | 初学一级 | 园豆:152
提问于:2016-05-30 20:15
< >
分享
最佳答案
1

不是,这种派生关系对象不会因为你是某个某个对象的子类导致你在实例化时还要实例化父类,子类只是具有父类的特征,但不是说子类实例化还要带一堆老子出来。

抽象类并没有节省空间的作用,这些更多是面象对象的东西。

在实例化子类字段时会实例化父类的字段。内存开销你可以忽略吧,这个不是现在这些高级语言的关注点,就算到了需要关注的场景也不是从这个地方下手。

收获园豆:50
Daniel Cai | 专家六级 |园豆:10424 | 2016-06-01 22:51
其他回答(1)
0

从生命周期这个级别来看 

对象创建的时候 执行顺序为

1.构造器

2.父类构造方法

3.子类构造方法 

通过这点可以看出 子类的创建 等于把父类的内容一并弄了一遍

小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2016-06-08 10:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册