Java の匿名内部クラスの特徴は何か?
Java の匿名内部クラスは以下の特性があります:
- 匿名内部クラスは、明示的なクラス名を持たず、コード内で直接定義されるクラスです。
- 匿名内部クラスは、通常、インターフェイスの実装クラスやスーパーのサブクラスとして使用されます。
- 匿名内部クラスは外部クラスのメンバ変数やメソッド、プライベートメンバを含む、直接利用することもできます。
- 匿名内部クラスは、コードを簡潔にするために頻繁に使用され、単一の使用の場合に特に役立ち、その場合にわざわざクラスを別途定義する必要がありません。
- 匿名内部クラスは、オブジェクトを作成する場で直接定義して利用することができ、あらかじめ定義してからインスタンス化する必要はありません。
- 匿名内部クラスは、外部クラスの final 変数を参照できますが、その値を変更することはできません。
- 匿名内部クラスは独自のメンバー変数とメソッドを持つことができます。
- 匿名内部クラスは複数のインタフェースを実装したり、インタフェースを実装すると同時にクラスを継承したりできます。
- 匿名内部クラスは、インターフェースの実装、または、クラスの継承により、親クラスやインターフェースのメソッドをオーバーライドできます。
- 匿名内部クラスはコンパイル時に、外部クラス名+数字というような、暗黙のクラス名が生成されます。例えば、Outer$1 など。