匿名內(nèi)部類一般情況下是覆蓋父類的方法、實(shí)現(xiàn)接口的方法韧掩、使用匿名內(nèi)部類傳入代碼塊進(jìn)行初始化。
覆蓋父類的方法:?
??? new Thread() {
??????????? public void run() {
?????????????????????????? System.out.println("覆蓋父類的方法");
? ? ?? ? }
???? };
使用匿名內(nèi)部類進(jìn)行初始化:
// { }匿名內(nèi)部類 +{ } 代碼塊
List list =new ArrayList() {
? {
?? add("Hello");
?? }
};
// { }匿名內(nèi)部類 +{ } 代碼塊
HashMap map =new HashMap() {
? {
???? put("a", "a");
}
};
實(shí)現(xiàn)接口的方法 :
new Thread(new Runnable() {
??? ? ? ?? @Override
? ? ? ? ? ? public void run() {
??????????????????????????? System.out.println("實(shí)現(xiàn)接口的方法");
? ? ? }
? });
使用匿名內(nèi)部類實(shí)現(xiàn)接口的方法時(shí)窖铡,JVM 會(huì)自動(dòng)為這個(gè)接口創(chuàng)建一個(gè)與該接口同名的實(shí)現(xiàn)類并返回該實(shí)現(xiàn)類的一個(gè)實(shí)例疗锐。