Java匿名內部類的寫法示例
阿新 • • 發佈:2020-08-31
前言
在Java中呼叫某個方法時,如果該方法的引數是一個介面型別,除了可以傳入一個引數介面實現類,還可以使用匿名內部類實現介面來作為該方法的引數。
匿名內部類其實就是沒有名稱的內部類,在呼叫包含有介面型別引數的方法時,通常為零簡化程式碼,不會建立一個介面的實現類作為方法引數傳入,而是直接通過匿名內部類的形式傳入一個介面型別引數,在匿名內部類中直接完成方法的實現。
建立匿名內部類的基本語法格式如下:
new 父介面(){
//匿名內部類實現部分
}
示例
interface Animal{ void shout(); } public class Example21 { public static void main(String[] args) { String name="小花"; //定義匿名內部類作為引數傳遞給animalShout方法 animalShout(new Animal() { //實現shout()方法 public void shout() { //jdk8開始,區域性內部類、匿名內部類課堂訪問非final的區域性變數 System.out.println(name+"喵喵。。。"); } }); } //定義靜態方法animalShout(),接收介面型別引數 public static void animalShout(Animal an) { an.shout();//調入傳入物件an的shout()方法 } }
注意:
在呼叫animalShout()方法時,在方法的引數位置上寫上new Animal(){},這相當於建立了一個例項物件,並將物件作為引數傳給animalShout()方法。在new Animal()後面有一對大括號表示建立的物件為Animal的子類例項,該子類是匿名的
總結
到此這篇關於Java匿名內部類的文章就介紹到這了,更多相關Java匿名內部類內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!