【初心者】 Java質問・相談スレ29 【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0685デフォルトの名無しさん
NGNG>15.9.5.1 匿名コンストラクタ
>匿名クラスは,明示的に宣言されたコンストラクタをもつことはできない。
>その代りに,コンパイラはその匿名クラスのために自動的に匿名コンストラクタ を用意しなければならない。
>直接的上位クラス S をもつ匿名クラス C の匿名コンストラクタの形式は,次に従う。
つまり、コーディング上は、コンストラクタを記述することはできず、
コンパイラが規定のルールに従って匿名コンストラクタを用意して、
それが実行時に使われる、ってことですか?
そうすると、直接的上位クラス S をもつ個々の匿名クラス C において、
個々の初期化を、できるようにしようとした場合、
以下のような書き方にせざるをえないってことですよね。
---<S の宣言>---
public abstract class S {
public S {
init();
}
protected abstract init();
...
}
---<C1の宣言>---
S C1instance = new S() {
...
protected init() {
C1 固有の初期化・・・
}
...
};
-----
■ このスレッドは過去ログ倉庫に格納されています