【Java開発】第29回 匿名内部クラス

Java入門講座

はじめに

皆さん。こんにちは!

DreamHanksの254cmです。

今回は匿名内部クラスについて説明していきます。

Java記事のまとめはこちらです。

前回の記事は【Java開発】第28回 Stream APIです。

匿名内部クラスとは?

以前の記事で扱ったインターフェースと抽象クラスはインスタンスの生成ができません。

 

インスタンスを生成するためには各抽象メソッドを実装するクラスを作成して、

 

そのクラスを通じてインスタンスを生成するだけでした。

 

しかし、匿名内部クラスを利用するとインスタンスを生成することと似たような効果を出すことができます。

 

匿名内部クラスはクラスのインスタンスを生成するときに作成できますし、

 

使い捨ての子供クラスだと理解すればいいです。

 

匿名内部クラスの書き方

上記のように継承したい親クラスのインスタンスを生成してから匿名内部クラスを定義します。

 

サンプル

上記のサンプルのように匿名内部クラスを生成して親クラスのメソッドをオーバーライドします。

 

実行結果

 

匿名内部クラスの活用サンプル

サンプル1

上記のように匿名内部クラスで抽象メソッドを定義して使います。

 

クラスのインスタンスを生成して使うことと同じ効果を出すことができます。

 

実行結果

 

サンプル2

インターフェースの場合にも抽象メソッドを匿名内部クラスでオーバーライドするとインスタンスの生成ができます。

実行結果

 

サンプル3

 

匿名内部クラスで新しく作成したフィールドやメソッドは外部で接続できなく、

 

匿名内部クラスでしか使えません。

 

 

サンプル4 

上記のようにインターフェースや抽象クラスを引数にするメソッドに匿名内部クラスを渡すことができます。

終わりに

今回の記事は以上になります。

次回はThreadを学びましょう。

ご覧いただきありがとうございます。

コメント