「その場限り」のサブクラスもしくは実装クラスを作る方法。 「new スーパークラス名( コンストラクタの引数 ) { /* サブクラスとしての実装 */ }」とすることで、「名前のない」クラスを作ることができる。これが「匿名クラス」である。 匿名クラスは「スーパークラス名」のサブクラスとして作られる。スーパークラスの代わりにインターフェイスを使用し、その実装クラスを作ることもできる。 逆に言うと、匿名クラスは必ず、スーパークラスのサブクラスか、インターフェイスの実装クラスとして作らなければならない。単独のクラスとして作る場合には、Objectクラスのサブクラスとして作ることになる。 また、匿名クラスは「名前のないクラス」のため、参照型変数を作ることができない。そのため、基本的に「オーバーライドするメソッド」もしくは「実装するメソッド」以外にpublicメソッドを作ることはない。新規に追加し