コンストラクタの this() super()はなぜ先頭にしか記述出来ないか
なぜthis()
super()
は先頭に以外に記述することをなぜ禁止したのでしょうか?
this()
やsuper()
を呼び出す前に何かをしないといけない時は面倒じゃないですか。
なぜなのでしょうか。
public class Instance{
String name;
public Instance(){
//ここに処理があるとエラーが出る
this("Sample");
}
public Instance(String name){
//処理…
}
}
Instance instance=getInstance();
みたいにする方法もあります。
public class Instance{
String name;
public static Instance getInstance(){
//処理
return new Instance("Sample");
}
private Instance(String name){
//処理…
}
}
それでいいのですが、少し気になったので教えて下さい。