最近做了幾道面試題,發現base關鍵字出的題目還比較多。所以在這里針對base關鍵字做一個內存的剖析,希望日后可以用到。
先看下面一道題目:
最后在main方法中實例化子類TestChild,並且調用其Show方法。問輸出結果是什么?
TestChild child=new TestChild();
child.Show();
碰到這個問題,最好我們能通過分析內存圖的方式解決該問題。
下面把自己所做的內存圖奉上,當然圖形看着並不是很美觀。
Ok,一切說明都在圖里了。我們可以看到每一個子類的對象,都包含了一個父類對象。
並且this關鍵字指向當前對象自身,在子類中使用base關鍵字則調用父類對象。通過該圖,輸出結果就一目了然了。
最后給大家擴充下,字符串常量和靜態字段都存儲在內存當中的數據存儲區。