匿名内部类----java
匿名內部類----java
匿名內部類就是內部類的簡化寫法,是一種特殊的局部內部類。
前提:存在一個類或者接口,這里的類可以是具體的類也可以是抽象類。
本質是:一個繼承了該類或者實現該接口的子類匿名對象。
適合那種只需要創建一次對象的類。
?
Comparable:內部比較器 public classStudent implements Comparable{}內部比較器只能有一個,一般采用最經常使用的比較規則。
Comparator:外部比較器 可指定多個 不需要Student實現該接口,而是定義專門的類、
?
總結:
1、匿名內部類可以實現一個接口,也可以繼承一個類(可以是抽象類)。
2、匿名內部類只能實現一個接口,而不是多個。
3、必須實現所有方法,匿名內部類不能是抽象類。
4、匿名內部類不可能有構造方法,因為類是匿名的。
5、匿名內部類沒有訪問控制符。
6、如果想實現構造方法的一些初始化功能,可可以通過代碼塊實現。
7、如果要訪問所在方法的局部變量,該變量需要使用final修飾。
?
內部類的作用:
1、內部類提供了更小的封裝。只能讓外部類直接訪問,不允許同一個包中的其他類直接訪問。
2、內部類可以訪問外部類的私有屬性,內部列被當成其外部類的成員。但外部類不能訪問內部類的內部屬性。
3、接口只解決了多重繼承的部分問題,而內部類使得多重繼承的解決方案變的更加完整。
4、用匿名內部類實現回調功能,我們通俗的講解就是說在Java中,通常就是編寫一個接口,然后你來實現這個接口,然后把這個接口
的一個對象作為參數的形式傳到另一個程序中,然后通過接口調用你的方法,匿名內部列就可以很好地展現量這一種回調功能。
?
內部類使用場合:
1、由于內部類提供了更好的封裝性,并且可以很方便的訪問外部類的屬性,所以,在只為外部類提供服務的情況下可以優先考慮使用內部類。
2、使用內部類間接實現多繼承:每個內部類都能獨立地繼承一個類或者實現某些接口,所以無論外部類是否已經繼承了某個類或者實現了某些
接口,對于內部列都沒有任何影響。
總結
以上是生活随笔為你收集整理的匿名内部类----java的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python数据可视化是什么_Pytho
- 下一篇: gradle 查看依赖类库版本_如何查找