用vs.net2003通过调试观察c#语句运行次序,有趣的事与我们通常的想象不同,它是先创建子类的空间,再创建父类的空间,所以我猜测在字段上使用base引用父类的字段给子类初始化将报错,果然。
曾经在对c#的接口的测试中,发现如果存在一个超过2代的子孙关系,则接口方法的实现将选取与直系有牵连覆盖关系的最后一个子孙的方法,当然前提是最小的子孙算到赋值语句右端的类。
呵呵,两种测试结合起来想就容易想通了。对于java估计原理应该大同小异,c#和java浅一看有很大相似,但实际却有着不同的考量。
相关文章: