Java中的匿名外部類小結。本站提示廣大學習愛好者:(Java中的匿名外部類小結)文章只能為提供參考,不一定能成為您想要的結果。以下是Java中的匿名外部類小結正文
java外部類分為: 成員外部類、靜態嵌套類、辦法外部類、匿名外部類 。
在java的世界裡,供給了匿名外部類語法,用於贊助年夜家簡化代碼,本文扼要從接口,籠統類和慣例類以代碼的情勢描寫其經常使用形式。
1. 接口形式
public interface IWriter { void write(); } public static void main(String[] args) { IWriter writer = new IWriter() { @Override public 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() { @Override public void write() { System.out.println("AbstractWriter write..."); } }; abstractWriter.write(); }
3.慣例類
public class TextWriter implements IWriter { @Override public void write() { System.out.print("text writer.."); } } public static void main(String[] args) { TextWriter textWriter = new TextWriter() { @Override public void write() { System.out.println("TextWriter 2 write..."); } }; textWriter.write(); }
4.在線程中應用
public static void main(String[] args) { Thread thread = new Thread() { @Override public void run() { new IWriter() { @Override public void write() { System.out.println("IWriter thread write..."); } }.write(); } }; thread.run(); }
5.結語
綜上可以看出,其實不論是接口中,籠統類,照樣慣例類派生出來的匿名外部類,其用法都是一樣的。之所以說這個是一個語法糖,其實質是編譯器在編譯的時刻,將匿名外部類零丁編譯成不多個分歧的class,這個和零丁寫完成類後再挪用其實實質是一樣,詳細可以拜見編譯後生成目次.以下截圖所示: