从某个构造函数调用重载版的另一个构造函数
视频锁定
{$ currentTime | date:'mm:ss' $}
{$ timeLeft | date:'mm:ss' $}
如果有某个重载版的构造函数除了不能处理不同类型的参数之外,可以处理所有的工作。那要怎么办?你不想让相同的程序代码出现在每个构造函数中,所以你想把程序代码只摆在某个构造函数中(包括对super()
的调用)。如此一来,所有的构造函数都会先调用该构造函数,让它来执行真正的构造函数。这很容易,只要调用this()
或this(aString)
或this(27, x)
就行。换句话说,this
就是当前对象本身的引用。
使用this()
来从某个构造函数调用同一个类的另外一个构造函数。this()
只能用在构造函数中,且必须是第一行语句。super()
与this()
不能同时调用!
class Mini extends Car {
Color color;
public Mini() {
this(Color, Red); //以默认的颜色调用真正的构造函数
}
public Mini(Color c) {
super("Mini"); //这才是真正的构造函数
color = c; //初始化动作
}
}
在线练习
{$ activeFileHint $}