关于C++和 java继承的疑问?

来源:百度知道 编辑:UC知道 时间:2024/05/31 14:06:29
关于继承
有两个类 A类 和B类
B类继承自 A类; B类和A类都有个没有参数的构造方法 方法里面都有输出一句话
实例化类B 先调用类A的构造方法然后调用了类B的构造方法
是不是 实际上创建了实例B 隐含的就创建了一个实例A 堆中有两个实例A和B
在java中 所有的类都继承自Object 创建了一个A对象 就相当于创建了 两个对象 另一个是Object
是这样吗?

堆中的确是开辟了两个空间,存放不同的数据。因为在子类实例化的时候必须先调用父类的无参的构造方法。但说成时两个实例这种说法很牵强。

不是两个实例,只有一个B的实例,只不过因为B类实例中包含了一些从A继承过来的成员,所以需要调用A类的构造函数.

不是有两个实例,就是B一个

不是。
只实例化了一个B对象
但这个B实例可以看作成是了一个特殊的A实例