创建子类对象时会不会创建父类对象
欧洋666 2017-03-17 03:15:49 知乎很多人说创建子类对象并不会创建父类对象,调用父类的构造器也不是创建父类对象,只不过是调用父类的构造器来初始化属性。
而Thinking in Java第七章 初始化基类 是这样描述的:
由于现在涉及基类和导出类这两个类,而不是只有一个类,所以要试着想象导出类所产生的结果对象,会有点困惑。从外部看来,它就像是一个与基类具有相同接口的新类,或许还会有一些额外的方法和域。但继承并不只是复制基类的接口。当创建了一个导出类的对象时,该对象包含了一个基类的子对象。这个子对象与你用基类直接创建的对象是一样的。二者的区别在于,后者来自于外部,而基类的子对象被包装在导出类对象内部。
下面是我个人对这句话的理解:
子类对象包含了一个父类(基类)的子对象,而这个父类的子对象和直接new出来的是一样的。那么也就是说子类创建时父类也会被创建,只不过父类的对象被包含在子类中。
希望对这个了解比较深的大神们来指点一下,到底哪个说的对啊?