在每个子类实例化时,如果父类不是抽象类,都要先给父类实例化开辟空间。
然而抽象类无法实例化,那么当子类实例化的时候,抽象类中的非抽象属性存在内存中的什么地方呢?
如果抽象类的某一个作用是节省内存空间,如果抽象类的属性存储在子类对象的内存空间中,是否会增加子类空间大小?达不到节约空间的效果呢?
2 回答
墨色风雨
TA贡献1853条经验 获得超6个赞
不是,这种派生关系对象不会因为你是某个某个对象的子类导致你在实例化时还要实例化父类,子类只是具有父类的特征,但不是说子类实例化还要带一堆老子出来。
抽象类并没有节省空间的作用,这些更多是面象对象的东西。
在实例化子类字段时会实例化父类的字段。内存开销你可以忽略吧,这个不是现在这些高级语言的关注点,就算到了需要关注的场景也不是从这个地方下手。
神不在的星期二
TA贡献1963条经验 获得超6个赞
从生命周期这个级别来看
对象创建的时候 执行顺序为
1.构造器
2.父类构造方法
3.子类构造方法
通过这点可以看出 子类的创建 等于把父类的内容一并弄了一遍
添加回答
举报
0/150
提交
取消