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

2021-10-07 16:53:02 字數 343 閱讀 8504

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

runnable runnable = new runnable()

}};

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

上面舉得例子是介面,其實抽象類也是一樣,可以大概總結為一句話:

乙個父類的引用指向了乙個子類的物件例項,這個子類沒有名字。

Go 04 匿名變數(沒有名字的變數)

在編碼過程中,可能會遇到沒有名稱的變數 型別或方法。雖然這不是必須的,但有時候這樣做可以極大地增強 的靈活性,這些變數被統稱為匿名變數。匿名變數的特點是乙個下畫線 本身就是乙個特殊的識別符號,被稱為空白識別符號。它可以像其他識別符號那樣用於變數的宣告或賦值 任何型別都可以賦值給它 但任何賦給這個識別...

String類為什麼是final的

首先我們使用new建立乙個string物件的時候比如 string str new string 123 這句話裡面建立了兩個物件,第乙個在系統中建立了乙個 abc 這個字串 然後在創乙個str物件,然後在讓 123 這個字串的引用 創乙個string物件相當於創了兩個。在說說為啥string類設定...

String類為什麼是final的

1.string的不可變性 比如第一次賦值 abc 第二次賦值 abcd 不是在原記憶體位址修改資料,而是重新指向乙個新位址 新物件 2.string為什麼不可變 開啟jdk原始碼 final修飾的string,代表了string的不可繼承性,final修飾的char代表了被儲存的資料不可更改性。但...