匿名內部類:是內部類的簡寫。它的本質其實是乙個帶著具體實現父類或者父介面的匿名的子類物件
前提:匿名內部類必須【繼承乙個父類】或者【實現乙個介面】,伴隨著重寫父類或者父介面當中的抽象方法。
以往的操作:想要使用介面當中的方法。需要四部操作
1、定義 介面的實現類
2、重寫介面當中的抽象方法
3、構建子類物件,把子類賦值給父介面變數
4、通過父介面變數呼叫介面當做方法
匿名內部類的定義格式:
new 父類名或者父介面名 };
//例子
public
inte***ce
usb(
)public
static
void
main
(string[
] args)
@override
public
void
close()
};}
如果介面當中的實現類(或者父類的子類)在程式當中只需要使用唯一的一次,這種情況下可以使用匿名內部類。
對格式:new 藉口名稱(){}分析
1、new 代表建立物件
2、藉口名稱就是匿名內部類需要實現的那個介面,同時需要哪個介面實現類的物件
3、{}這是匿名內部類的內容
使用匿名內部類注意事項:
1、匿名內部類在建立物件時,只能使用唯一的一次
如果希望多次建立物件,而且類的內容是一樣的話,建議單獨定義實現類
2、匿名物件,在【呼叫方法時】,也只能使用唯一一次
如果希望同乙個物件,呼叫多次方法,那麼就建議給物件起個名字
3、匿名內部類是省略了【實現類/子類名稱】,但是匿名物件是省略了【物件名】
備註:匿名內部類和匿名物件兩者根本就不是一回事!!
通常在方法的形式引數是介面或者抽象類時,一般將匿名內部類作為實參進行引數傳遞。
例子如下:
public
inte***ce
animal
// 定義乙個啟動類
public
class
demoanonymous
public
static
void
main
(string[
] args)};
showeat
(animal)
;// 貓吃魚
// 簡化一下
showeat
(new
animal()
});}
}
內部類,匿名內部類
內部類 概念 自己想到的 內部類是一種可以直接訪問外部類的一類事物 內部類訪問外部類中的成員,包括私有。之所以可以訪問外部類的成員,是因為內部類持有了外部類的乙個引用,格式為 outer.this.x 外部類訪問內部類成員,需要宣告內部類的物件。其他類訪問內部類方法 當內部類處在成員變數的位置時,就...
內部類 匿名內部類
把類定義在其他類的內部,這個類就叫內部類。內部類分為 成員內部類 區域性內部類。內部類訪問特點 內部類可以直接訪問外部類的成員,包括私有。外部類訪問內部類的成員,必須建立物件。區域性內部類是定義在乙個方法或者乙個作用域裡面的類。public class outer 在區域性位置建立內部類物件,調內部...
內部類 匿名內部類
package org.lgy.study.innerclass public class anonymoustest public static void main string args public string getname public double getprice inte ce p...