java 生成子对象,一定会新建一个父类对象吗?

jiaoshou3471 2014-05-21 03:43:04

class father
{
}
class son extends father
{
public static void main(String[] args)
{
son s=new son();//这里先产生一个父类,再产生一个子类吗?
}
}

越学越糊涂,
求权威解答
...全文
297 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiaoshou3471 2014-05-21
  • 打赏
  • 举报
回复
引用 9 楼 shine333 的回复:
我说过“生成一个圣灵就会先产生一个圣父和圣灵吗”了吗
我理解错了~
shine333 2014-05-21
  • 打赏
  • 举报
回复
我说过“生成一个圣灵就会先产生一个圣父和圣灵吗”了吗
shine333 2014-05-21
  • 打赏
  • 举报
回复
引用 6 楼 jiaoshou3471 的回复:
[quote=引用 4 楼 shine333 的回复:]
class 圣父 {}
class 圣子 extends 圣父 {}
class 圣灵 extends 圣子 {}
下面的代码,不会有单独的一个与a没关系的圣父/圣子,他们是三位一体的
圣灵 a = new 圣灵();
意思是生成一个圣灵就会先产生一个圣父和圣灵吗?为什么有些人说只是调用构造函数,而没有产生父类对象?[/quote] 我说过“生成一个圣灵就会先产生一个圣父和圣灵吗”
grapepaul 2014-05-21
  • 打赏
  • 举报
回复
子类在创建实例后,类初始化方法会调用父类的初始化方法(除了java.lang.Object类,因为java.lang.Object类没有父类),而这种调用会逐级追述,直到java.lang.Object的初始化方法。 这个地方是初始化方法,而不是构造方法,因为构造方法是相对于java源程序而言,而编译后的class文件是初始化方法即" <init>"方法,初始化方法由java源程序的三个部分组成的,一个部分是成员字段后的直接的初始化语句,例如private int i=0;,第二个部分是由初始化块组成,例如:public class Test{ { this.i=4; \\do something...... } } 第三个部分就是java源代码中的构造方法中的代码,java源代码中有几个构造方法,那么class文件中就有几个初始化方法,编译器会把第一部分与第二部分分别复制到每个初始化方法的前端,然后把初始化方法对应参数的构造方法的代码复制到相应初始化方法中 调用初始化方法并不会生成对象 想象你的父类是一个抽象类,那么抽象类又如何能够产生对象呢
jiaoshou3471 2014-05-21
  • 打赏
  • 举报
回复
引用 4 楼 shine333 的回复:
class 圣父 {}
class 圣子 extends 圣父 {}
class 圣灵 extends 圣子 {}
下面的代码,不会有单独的一个与a没关系的圣父/圣子,他们是三位一体的
圣灵 a = new 圣灵();
意思是生成一个圣灵就会先产生一个圣父和圣灵吗?为什么有些人说只是调用构造函数,而没有产生父类对象?
shine333 2014-05-21
  • 打赏
  • 举报
回复
当然,真正的“三位一体”,上面这三者,不是extends关系
shine333 2014-05-21
  • 打赏
  • 举报
回复
class 圣父 {}
class 圣子 extends 圣父 {}
class 圣灵 extends 圣子 {}
下面的代码,不会有单独的一个与a没关系的圣父/圣子,他们是三位一体的
圣灵 a = new 圣灵();
jiaoshou3471 2014-05-21
  • 打赏
  • 举报
回复
调用构造函数不一定生成对象吗? 坐等权威
S117 2014-05-21
  • 打赏
  • 举报
回复
没爹哪来的儿子 你子类的构造函数会调用父类的构造函数的!
haorengoodman 2014-05-21
  • 打赏
  • 举报
回复
是去执行了父类的构造方法,不是生成了一个父类实例

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧