为什么super()和this()调用语句不能同时在一个构造函数中出现?
为什么super()和this()调用语句只能作为构造函数中的第一句出现?
谢谢了 小弟是菜鸟 刚刚学java
为什么super()和this()调用语句只能作为构造函数中的第一句出现?
谢谢了 小弟是菜鸟 刚刚学java
解决方案 »
- Java读取TXT文档中的数据并赋值给动态数组
- Thinking In Java初始化顺序,读第六章有感
- 怎样实现Java键盘控制图像缩放
- 菜鸟询问一低级问题,40分仅赠送一人
- 怎么提高applet动画的启动速度?给点提示吧
- 要做java的图像处理,感觉资料缺乏,又比较零乱,开个贴,大家一起收集,一起学习,有关java的图像处理资料都在这贴出
- 我不会运行Java编译器,望各位指点一下
- 关于drawline等一系列Graphics的问题
- JCL英文版发布(最新版)!放分300
- 有谁知道哪里有JAVA2类库(AWT,SWING)电子书下载,多谢!!!!
- 关于strSQL="select top ? * from table1"; 的错误问题
- 难道这样有错吗? 谁能告诉我对的。我需要对的。。:(
所以不可能在同一构造中同时调用super()和this().
super()和this()分别是显示的调用了父类和本类的无参构造函数,这样的话JVM就不会自动调用默认的构造了。
其实在不显示调用super()和this(),JVM还是会去调用的,只是调用工作留给了JVM来完成了。
因此,如果你在构造函数显示的调用构造super()或者this(),必须是要放在第一个语句上。
如果在程序中写了super()和this(),就相当与显示的去调用构造儿也。
为什么在第一句,这个应该是规定吧。
如果是有参数的那就必须是要显示的调用了的啊super(参数1,参数2).
我博客里有关于this的三大用法,建议LZ看一下!!!
http://blog.csdn.net/aa278489710/archive/2008/11/14/3298014.aspx
第一代表的是创建的当前的对象,对隐士参数的引用;
第二是调用同一类的构造函数
关于第二个就像前面说的那样,java怕修改当前对象或父类对象的参数,而引起麻烦,就规定只能在第一条出现,如果不是就会报错
所以可以用c++来解释
使用super就说明你的构造函数要调用基类
按照c++的规则,执行子类的构造函数首先要分配内存空间,然后调用基类的构造函数,然后是子类的构造函数
所以super要放在首位