我們能真正實例化一個抽象類別嗎?
在面試過程中,經常會出現一個問題:“我們能實例化一個抽象類別嗎?”傳統的答案是“否”,但這個答案現在可能已經過時了。
匿名類之謎
為了闡明這個謎團,讓我們深入研究Java 語言規範 (JLS) 第 15.9.1 和 12.5 節引入的修訂理解。具體來說,當類別實例建立表達式以類別主體結束時,就會聲明匿名子類別。因此,被實例化的類別成為匿名子類,而不是抽象類別本身。
實際示範
為了說明這個概念,請考慮以下程式碼:
編譯此程式碼時,您會注意到My$1 .class 檔案的創建,對應於產生的匿名子類別對於透過new My() {} 完成的匿名類別實例化。
結論
因此,問題「我們可以實例化抽象類別嗎?」的答案已經進化了。雖然我們不能直接實例化抽象類,但我們可以創建其匿名子類別的實例,這些子類別的行為就像抽象類別的實例一樣,允許我們呼叫抽象類別中的方法和存取屬性。
以上是我們可以實例化一個抽象類別嗎? 修改後的答案的詳細內容。更多資訊請關注PHP中文網其他相關文章!