new一个子类的时候,父类对象有没有生成

2024年12月02日 11:01
有4个网友回答
网友(1):

有父类对象的生成,要不你怎么可以继承父类中的成员变量呢!在内存中生成一个子类SubClass的对象区域,在此区域当中还包含着一个父类(Base)对象. (如下图)

网友(2):

创建子类对象的时候,在内存中不存在父类对象的。因为你只new了一个子类对象而没有new父类对象。你可以想象一下,为什么要有父类,为的就是代码的重用性,把类(子类)的公用代码放在一个单独的类中(父类),产生继承关系,当进行new子类的时候,会把父类中的public的方法和变量加上子类内部的代码一起加载到内存中;其实父类中的public方法和变量也是子类的一部分而已,所以在new子类的时候不会产生父类对象的;
产生父类是为了精简代码,体现java的重用性的特点,而在实际运行的过程中是相反的思路就行了。
其实很简单的。不知道我的说法是否正确,希望批评指正!

网友(3):

生成的,而且父类的构造方法(或称构造函数、构造体,英语Constructor)会比子类的构造方法先生成。

网友(4):

程序先在内在里建一个base再建一个subclass
-------------------------------------------------------------
父类Base:
package com.fzq.study1;

public class Base {
public Base() {
System.out.println("father");
}
}
---------------------------------------------------------------
子类SubClass:
package com.fzq.study1;

public class SubClass extends Base{
public SubClass() {
System.out.println("son");
}
}
--------------------------------------------------------------
放在程序跑一下,看看是不是father先于son输出.