コンストラクタの外出し
特に意味は無い
まぁソースを見てほしい
public class Hoge { public static void main(String[] args){ Fuga fuga = new Fuga().init(3,"テスト"); fuga.print(); new Piyo().init(5,"みなさんおはよう").print(); } } class Fuga { int num; String str; public Fuga init(int num,String str) { this.num = num; this.str = str; return this; } public void print() { for(int i=0; i<num; i++) { System.out.println(str); } } } class Piyo extends Fuga { @Override public void print() { for(int i=0; i<num; i++, System.out.println(str)); } }
実行結果
% java Hoge テスト テスト テスト みなさんおはよう みなさんおはよう みなさんおはよう みなさんおはよう みなさんおはよう
はっきり言って継承したときにコンストラクタを書かなくて済むくらいしかメリットは無いような気がする・・・