最近做了几道面试题,发现base关键字出的题目还比较多。所以在这里针对base关键字做一个内存的剖析,希望日后可以用到。
先看下面一道题目:
最后在main方法中实例化子类TestChild,并且调用其Show方法。问输出结果是什么?
TestChild child=new TestChild();
child.Show();
碰到这个问题,最好我们能通过分析内存图的方式解决该问题。
下面把自己所做的内存图奉上,当然图形看着并不是很美观。
Ok,一切说明都在图里了。我们可以看到每一个子类的对象,都包含了一个父类对象。
并且this关键字指向当前对象自身,在子类中使用base关键字则调用父类对象。通过该图,输出结果就一目了然了。
最后给大家扩充下,字符串常量和静态字段都存储在内存当中的数据存储区。