爲什麼匿名類是沒有名字的,明明有名字的解釋

首先大家看一下下面的代碼,大家應該還算熟悉吧,他其實就是一個匿名類。

  Runnable runnable = new Runnable() {
            @Override
            public void run() {
                for (int i = 1; i <= 20; i++) {
                    ad.loopA(i);
                }

            }
        };

Runnable是一個接口,這個接口前面之所以new 了一下,並不能說明接口可以new,因爲接口裏面重寫了接口中的抽象方法run。此時表明是一個實現了接口的具體對象,只不過這個對象沒有名字,可是又奇怪了,這個runnable不是他的名字嗎,不是,這個相當於是接口的引用,這個引用指向了這個匿名對象。

上面舉得例子是接口,其實抽象類也是一樣,可以大概總結爲一句話:
一個父類的引用指向了一個子類的對象實例,這個子類沒有名字。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章