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