程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> java匿名類-你好,new一個方法不是生成一個對象,怎麼就生成了一個匿名類呢

java匿名類-你好,new一個方法不是生成一個對象,怎麼就生成了一個匿名類呢

編輯:編程綜合問答
你好,new一個方法不是生成一個對象,怎麼就生成了一個匿名類呢

你好,new一個方法不是生成一個對象,怎麼就生成了一個匿名類呢

我對new關鍵詞的用法不是很清楚

最佳回答:


先看段偽代碼
abstract class Father(){
....
}

public class Test{
Father f1 = new Father(){ .... } //這裡就是有個匿名內部類
}
一般來說,new 一個對象時小括號後應該是分號,也就是new出對象該語句就結束了。
但是出現匿名內部類就不一樣,小括號後跟的是大括號,大括號中是該new 出對象的具體的實現方法。
因為我們知道,一個抽象類是不能直接new 的,必須先有實現類了我們才能new出它的實現類。
上面的偽代碼就是表示new 的是Father的實現類,這個實現類是個匿名內部類。
其實拆分上面的匿名內部類可為
class SonOne extends Father{
... //這裡的代碼和上面匿名內部類,大括號中的代碼是一樣的
}
public class Test{
Father f1 = new SonOne() ;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved