首頁 >Java >java教程 >我們可以實例化一個抽象類別嗎? 修改後的答案

我們可以實例化一個抽象類別嗎? 修改後的答案

Patricia Arquette
Patricia Arquette原創
2024-12-09 21:28:15657瀏覽

Can We Instantiate an Abstract Class?  A Revised Answer

我們能真正實例化一個抽象類別嗎?

在面試過程中,經常會出現一個問題:“我們能實例化一個抽象類別嗎?”傳統的答案是“否”,但這個答案現在可能已經過時了。

匿名類之謎

為了闡明這個謎團,讓我們深入研究Java 語言規範 (JLS) 第 15.9.1 和 12.5 節引入的修訂理解。具體來說,當類別實例建立表達式以類別主體結束時,就會聲明匿名子類別。因此,被實例化的類別成為匿名子類,而不是抽象類別本身。

實際示範

為了說明這個概念,請考慮以下程式碼:

編譯此程式碼時,您會注意到My$1 .class 檔案的創建,對應於產生的匿名子類別對於透過new My() {} 完成的匿名類別實例化。

結論

因此,問題「我們可以實例化抽象類別嗎?」的答案已經進化了。雖然我們不能直接實例化抽象類,但我們可以創建其匿名子類別的實例,這些子類別的行為就像抽象類別的實例一樣,允許我們呼叫抽象類別中的方法和存取屬性。

以上是我們可以實例化一個抽象類別嗎? 修改後的答案的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn