20

次の Java コードでは、JButton が作成されますが、同時にそのメソッドの 1 つがオーバーライドされます。質問: オブジェクトの作成中にこのようにオーバーライドするための名前はありますか?

コード:

   JButton myButton;
   myButton = new JButton ("ok"){

        @Override
        public void setText(String text) {
            super.setText(text +", delete");
        }

jbutton のラベルが「OK、削除」になりました

4

1 に答える 1

25

それが匿名クラスです。Javaから一言で言えば

匿名クラスは、名前のないローカル クラスです。匿名クラスは、new 演算子を使用して単一の簡潔な式で定義およびインスタンス化されます。ローカル クラス定義は Java コードのブロック内のステートメントですが、匿名クラス定義は式です。つまり、メソッド呼び出しなどのより大きな式の一部として含めることができます。ローカル クラスを 1 回だけ使用する場合は、クラスの定義と使用をまったく同じ場所に配置する匿名クラス構文の使用を検討してください。

これは、式を介して新しいクラスを明示的に定義せずに、基本クラスの特殊化を提供する一般的な手段ですclass

于 2009-10-01T14:22:58.307 に答える