語法
匿名內(nèi)部類適合那種只需要使用一次的類蔫敲。創(chuàng)建匿名類的同時會立即創(chuàng)建一個該類的實(shí)例,這個類不能重復(fù)使用炭玫。
new interface|superClass()
{
//匿名內(nèi)部類
}
可見奈嘿,匿名類必須繼承一個父類或一個接口,且最多一個吞加。
還要注意裙犹,匿名內(nèi)部類不能定義靜態(tài)初始化代碼塊,不能在匿名類里面定義接口衔憨,不能在匿名類中定義構(gòu)造函數(shù)叶圃。
匿名類就是一個繼承的子類,也可以多重匿名(多重子類)践图。
常用匿名類寫法
注意辨析以下寫法的結(jié)果為什么不同掺冠。
public class RunWhatThread {
public static void main(String[] args) {
Thread th = new Thread(new Runnable() {
@Override
public void run() {
System.out.println("runnable");
}
});
th.start();
}
}
//輸出runnable
public class RunWhatThread {
public static void main(String[] args) {
Thread th = new Thread(new Runnable() {
@Override
public void run() {
System.out.println("runnable");
}
})
{
@Override
public void run() {
System.out.println("thread");
}
};
th.start();
}
}
//輸出thread
public class RunWhatThread {
public static void main(String[] args) {
Thread th = new Thread(new Runnable() {
@Override
public void run() {
System.out.println("runnable");
}
}) {
@Override
public void run() {
super.run();
System.out.println("thread");
}
};
th.start();
}
}
//輸出
runnable
thread