Class 扩展任何类时,逻辑上哪个类(子类或父类)的大小会变大

Class 扩展任何类时,逻辑上哪个类(子类或父类)的大小会变大,class,inheritance,Class,Inheritance,我很困惑,在扩展任何类时,哪个类(子类或父类)的大小在逻辑上会变大。 提前感谢父类本身的大小保持不变 子类实例的大小大于或等于父类实例的大小。我想你指的是对象(该类的实例) 扩展类的对象将为子类(如普通类)以及超类中使用的任何方法/变量分配内存 根据经验,您可以只考虑一个子类对象,它包含来自它的所有内存和所有超类。子类将具有更大的内存占用空间。父类不知道子类的情况。父类必须保持大小不变。否则,只需定义一个子类,就可以更改使用父类的例程的结果,这是不好的。一方面,它违反了最小惊奇原则,同时也会引入

我很困惑,在扩展任何类时,哪个类(子类或父类)的大小在逻辑上会变大。
提前感谢

父类本身的大小保持不变


子类实例的大小大于或等于父类实例的大小。

我想你指的是对象(该类的实例) 扩展类的对象将为子类(如普通类)以及超类中使用的任何方法/变量分配内存


根据经验,您可以只考虑一个子类对象,它包含来自它的所有内存和所有超类。

子类将具有更大的内存占用空间。父类不知道子类的情况。

父类必须保持大小不变。否则,只需定义一个子类,就可以更改使用父类的例程的结果,这是不好的。一方面,它违反了最小惊奇原则,同时也会引入非常不理想的耦合


子类必须包含父类的所有内容,可能还有一些额外的内容(否则就不是子类)。然而,虽然它通常会比父对象大,但实际上并不会变大。其大小通常在定义时确定。(至少对于我所熟悉的所有语言来说。如果这个问题真的是语言不可知的,那么,还有很多面向对象的系统。)

你好,大卫,谢谢你的回答,那么为什么我们不能让超类对象的对象成为子对象,因为子对象包含所有代码,但反过来是可能的。