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,這個和零丁寫完成類後再挪用其實實質是一樣,詳細可以拜見編譯後生成目次.以下截圖所示: