Java内部クラスは、メンバー内部クラス、静的ネストクラス、メソッド内部クラス、および匿名の内部クラスに分かれています。
Javaの世界では、匿名の内部クラスの構文が提供され、誰もがコードを簡素化するのに役立ちます。この記事では、インターフェイス、抽象クラス、通常のクラスのコードの形式での共通のパターンについて簡単に説明します。
1。インターフェイスモード
public interface iwriter {void write();} public static void main(string [] args){iwriter writer = new iWriter(){@overridepublic void write(){system.out.println( "iwriter write ...");}}; writer.write();}; 2。要約クラス
public abstract class abstractwriter {public abstract void write();} public static void main(string [] args){abstractwriter abstractwriter = new abstractwriter(){@overridepublic void write(){system.out.println( "abstractwriter write ...");}};3。一般クラス
public class textwriter exmments iwriter {@overridepublic void write(){system.out.out.print( "text writer ..");}} public static void main(string [] args){textwriter textwriter = new Textwriter(){@overridepublic void write(){system.out.out.out.out.out.Outln(書く... ");}}; textwriter.write();} 4。スレッドで使用します
public static void main(string [] args){thread thread = new thread(){@overridepublic void run(){new iWriter(){@overridepublic void write(){system.out.println( "iwriter thread write ...");}}。 5。結論
上記から、実際には、通常のクラスから派生したインターフェイス、抽象クラス、または匿名の内部クラスであっても、使用法が同じであることがわかります。これが構文砂糖である理由は、コンパイラが匿名の内部クラスを異なるクラスにコンパイルするときです。これは、実際には実装クラスを個別に書いてから呼び出すことと同じです。詳細については、コンパイル後に生成されたディレクトリを参照できます。以下のスクリーンショットに示すように: