this()和super()是不可以同时出现在同一个构造函数中的。
原因如下:创建一个子类的实例时,首先会调用父类的构造函数,然后再调用子类的构造函数,如果父类中没有缺省构造函数,则必须再子类的构造函数中显示的调用它(如下面的例子),
在程序中的顺序是这样的:
super(...) //父类构造函数
..... //当前类构造函数语句
同样的道理,当一个类中有多个构造函数的时候,在其中一个构造函数中也可以先调用其他的构造函数来初始化对象,这种方法叫做“显式构造方法调用”,当那样的构造方法被调用,它将执行通常的super() 过程以及后续的操作。
然后在执行本构造函数中的构造语句,这个时候的顺序是这样的:
this(....) //当前类的其他构造函数
... //当前构造函数的其他语句
扩展资料
this对象是谁取决于函数被调用的方式,在JavaScript中,函数具有四种调用方式:
1、直接调用,此时函数中的this在ES3/ES5非严格模式下为全局对象,在浏览器中即为window;
2、某个对象的方法调用,这时this指这个上级对象;
3、作为构造函数调用;
4、apply调用
apply()是函数对象的一个方法,它的作用是改变函数的调用对象,它的第一个参数就表示改变后的调用这个函数的对象,因此this指的就是这个第一个参数。apply()参数为空时,默认调用全局对象,所以这时的运行结果为0,此时,this为全局对象。
参考资料来源:
请参考:http://www.jobui.com/mianshiti/it/java/7149/
this()调用子类的相应构造方法,super()显示调用父类的相应构造方法,如果同时放在一个构造函数中,编译会出错的