super和this方法 为什么super()和this()调用语句不能同时在一个构造函数中出现? 为什么super()和this()调用语句只能作为构造函数中的第一句出现? 谢谢了 小弟是菜鸟 刚刚学java 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 super() 和 this() 都是要求在构造函数中的第一句位置调用, 所以不可能在同一构造中同时调用super()和this().super()和this()分别是显示的调用了父类和本类的无参构造函数,这样的话JVM就不会自动调用默认的构造了。其实在不显示调用super()和this(),JVM还是会去调用的,只是调用工作留给了JVM来完成了。因此,如果你在构造函数显示的调用构造super()或者this(),必须是要放在第一个语句上。 其实我们平时写的代码,没有在构造中调用super()和this()m,JVM在运行代码的时候也会去调用的。这就是JVM会调用默认构造函数。 如果在程序中写了super()和this(),就相当与显示的去调用构造儿也。 ls理解有误,super是调用父类的构造函数,当然包括含有参数的构造函数,this是调用自己的类的重载的构造函数,为什么在第一句,这个应该是规定吧。 this(),super()这不就是调用无参的嘛,如果是有参数的那就必须是要显示的调用了的啊super(参数1,参数2). LS的正解!!!放在第一行应该是约定的吧!!!我博客里有关于this的三大用法,建议LZ看一下!!!http://blog.csdn.net/aa278489710/archive/2008/11/14/3298014.aspx this经常是一些实例变量与某些方法重名时,引用方法内的变量 this的作用第一代表的是创建的当前的对象,对隐士参数的引用;第二是调用同一类的构造函数 关于第一个super()可以出现,而this()不能,因为如果调用会是递归构造函数,是不允许的关于第二个就像前面说的那样,java怕修改当前对象或父类对象的参数,而引起麻烦,就规定只能在第一条出现,如果不是就会报错 java是c++的改版,也是面向对象语言所以可以用c++来解释使用super就说明你的构造函数要调用基类按照c++的规则,执行子类的构造函数首先要分配内存空间,然后调用基类的构造函数,然后是子类的构造函数所以super要放在首位 swt list方法add问题 哪里能找到think in java的第四版呢? 求助,如何用java访问exchange发起会议? 请进!帮个忙! 菜鸟问题,请高手解答! 今天忽然发现了这么个问题?! 求救了,快不行了,急啊!(关于java解压 *.Z 文件) 如果你真的是位热心的程序员,^_^ 就请帮帮忙一起解决一下我的问题吧! 谢谢! java 访问数据库问题? 为什末我的程序不能运行?大家帮忙看看! 关于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要放在首位