多态, SOS调试, 方法槽表

SOS调试
C:\Windows\Microsoft.NET\Framework\v4.0.30319\SOS.dll
http://www.rainsts.net/article.asp?id=598

 

方法槽表

方法槽表的结构: 最开始是方法槽数、任何类型的开始4个方法总是ToString, Equals, GetHashCode, and Finalize。这些是从System.Object继承的虚方法。然后后面是类型从基类继承的虚方法,接着是自己类型实现的方法,最后是构造方法。方法槽表的主要就够就是:虚方法--实例方法--构造方法,这样的排序。这里要特别主要的是,基类的实例方法和静态方法是不会继承到子类的方法槽表中的,这里和我们之前理解的,子类会继承父类所有的非构造方法是不同的。因为继承是逻辑上的,而这里是物理上的结构。也就是说,一个类型的方法表槽中,只有父类的虚方法和自己定义的方法(暂不管那4个方法和构造方法)。理解了方法槽表的结构,讲有助与理解继承和多态的本质。

 

1.多态是面向对象编程中三大机制之一,其原理建立在"从父类继承而来的子类可以转换为其父类"这个规则之上,换句话说,能用父类的地方,就能用该类的子类.当从父类派生了很多子类时,由于每个子类都有其不同的代码实现,所以当用父类来引用这些子类时,同样的操作而可以表现出不同的操作结果,这就是所谓的多态.

2.多态就是针对不同类别的对象,在使用相同的方法有不同的行为方式。

3.public 和protected都可以被子类继承, private不能继承, 只能在本类定义的代码内使用.

posted on 2011-08-25 18:03  BobLiu  阅读(290)  评论(0编辑  收藏  举报