2007年10月15日月曜日

super() と this()

基本的に、コンストラクタには super() が自動生成されます。
super() はスーパークラスのコンストラクタを呼び出します。
this() はそのクラスの引数なしのコンストラクタを呼び出します。
最終的にはすべてのクラスのスーパークラスである Object クラスのコンストラクタが呼び出されます。
super()this() に引数をつけることは可能です。
super()this() の併用は不可です。
super()this() はコンストラクタ内の処理の最初に記述する。

Sample sample = new Sample(1) 
下記の例では引数ありのコンストラクタ内で super() が自動生成されます。
class Sample {
    Sample() { }
    Sample(int x) { }     // super()が自動生成される
}

下記の例では引数なしコンストラクタ内に super() が自動生成されます。
class Sample {
    Sample() { }     // super() が自動生成される
    Sample(int x) {this();}
}

0 件のコメント: