以下のためのパッケージ変更。内部クラスに匿名内部クラスをday27_; / * *匿名内部クラス: *匿名内部クラスは、名前のないローカル内部クラスとして見ることができます *法で定義された 彼は、匿名内部クラスの時間の定義で作成する必要があります*オブジェクト *フォーマット: * 新しい新しいクラス /インタフェース(){ *あなたは、サブクラスのオブジェクトを作成していることは、このクラスを継承する場合、私たちは親クラスのオーバーライドすることができます *を使用すると、オブジェクトが作成され、このインターフェイスのサブクラスを実装する場合、我々が実現しなければなりませんすべてのインターフェイスのメソッド *}; *原理:代わりに、このクラスまたはサブクラスオブジェクトのオブジェクトのサブクラスを作成し、このインタフェースを実現するために作成される * * / パブリック クラスInnerDemo3 { 公共 静的 ボイドメイン(文字列[]引数) { 犬D = 新しい新しい犬(); d.fun(); } } クラス{動物 公共 ボイド(){EAT のSystem.out.printlnは( "食べる" ); } } // 通常の書き込み クラスキャットインクルードは、拡張動物{ @Override 公共 ボイド(EAT){ System.out.printlnは( "猫の魚を" ); } } // 匿名内部クラス(名前のない部分の内部)書き込み クラスの犬{ 公共 のボイド楽しい(){ / * 新しい新しい動物(){ @Override ます。public void EAT(){ System.out.printlnは(「犬肉「); } }。食べる(); * / 動物A = 新たな動物(){ @Override 公共 ボイドは食べる(){ System.out.printlnは( "狗吃肉" )。 } }。 a.eat(); a.eat(); } }
輸出
二、新しいインターフェイス
パブリック クラスInnerDemo4 { 公共 静的 ボイドメイン(文字列[]引数){ アウターO = 新しい外部()。 o.method(); } } インターフェースインナー{ 公共 ボイド楽しいです(); } クラス外{ 公共 ボイド法(){ / * 新しいインナー(){ @Override ます。public void楽しい(){ System.out.printlnは( "私は楽しいですよ"); } } .fun()。 * / インナーI =新しいインナー(){ @Override 公共 のボイド楽しい(){ System.out.printlnは( "私は楽しいですよ" )。 } }。 i.fun(); i.fun(); } }
輸出