求高手分析java代码!

[复制链接]
查看11 | 回复5 | 2011-12-24 17:58:47 | 显示全部楼层 |阅读模式
你定义一个空test3构造函数试试...
回复

使用道具 举报

千问 | 2011-12-24 17:58:47 | 显示全部楼层
这个很简单了 建议你看看李刚的《疯狂Java》简单的说就是Java的构造器是用来初始话参数的 但是你在定义是初始话比不带表 立刻就初始化了而是 编译器为他分配了内存空间并默认初始话为0而a = 1;真正的初始话是在构造器执行时 只不过他比构造器执中的内容先执行而构造器中第一句隐藏了 super();这句,故父类的构造器又要先与子类...
回复

使用道具 举报

千问 | 2011-12-24 17:58:47 | 显示全部楼层
流程说一下 首先是 Test3的构造函数 然后 在Test3的构造函数的第一行 调用了 SexMoving 的构造函数 在 SexMoving的构造函数里面 调用了 playJapanMoving然后执行 Test3的playJapanMoving然后 是 tv1这个对象调用playJapanMoving...
回复

使用道具 举报

千问 | 2011-12-24 17:58:47 | 显示全部楼层
Test3 tv1 = new Test3(); 创建Test3类的对象,但该类继承了SexMoving类,SexMoving中有构造方法,因此先执行SexMoving()构造方法,但该方法在子类中才实现的输出变量a的值,因此输出a,由于a只在子类中定义,在编译的时候父类没有为其赋值,因此取默认值0,所以第一个输出的是 a = 0,至于第二个没必要说了,...
回复

使用道具 举报

千问 | 2011-12-24 17:58:47 | 显示全部楼层
在构造SexMoving是时候Test3的a变量还没有赋值,它会把int的默认初始值0打印出来...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行