機制是如何通過繼承影響/隱藏字段的機制,並且稍後解析了JVM規範的一部分?我知道它是part of the Java spec,可以在許多博客文章和SO問題中找到。但是,當我真正查看field resolution的JVM規範時,「隱藏」或「陰影」這些詞不會出現在pdf of the JVM spec的任何位置。Java繼承的字段陰影和JVM?
我問這是因爲我正在編寫自己的JVM,並發現這個字段映射是字節碼/ VM的屬性,而不僅僅是Java編譯器或Java語言的一部分。我想知道這應該在虛擬機級別實施的適當的權威方式。當然,這個重要的JVM的(錯誤?)功能需要在某個地方正式記錄嗎?
雖然我指的是繼承字段的陰影。字段名稱出現在字節碼中。而且我發現了這個事實,因爲我的DIY JVM(沒有處理這個陰影)對於相同的字節碼v.s獲得了不同的結果。在真正的JVM上執行它。而且,當我在我的DIY JVM中混入了一些類似繼承領域的陰影邏輯時,他們開始在我的單元測試中吐出相同的結果。我非常肯定,虛擬機必須要處理的是繼承字段陰影。 – 2013-03-23 03:09:15
@Li對於我來說,現場分辨率的規格看起來非常簡單。你在哪裏遇到問題? – Antimony 2013-03-23 03:11:02
您是否有規範未涵蓋的任何代碼示例?我認爲你可能會對這樣的事實感到困惑,即雖然字段是被繼承的,但它們並不像方法那樣被虛擬地調度。 – Antimony 2013-03-23 03:20:02