(1) 上述语法表示调用父类的方法XXX,其中ParamsList表示参数列表。在前面我们已经说过,父类中除private外,其他域的方法对于子类都是可见的(如果没有显式指定域,则编译指令{$M}开启时,隐含为published域,否则为public域)。因此,inherited可以调用父类任何在private域以外的方法。(2) 如果直接使用“inherited”,没有指定方法名和参数,则表示调用父类的同名方法(但当父类有多个该同名方法时——如该方法已被重载,则inherited必须使用完整格式,否则编译器不能确定你到底要调用这些同名方法中的哪一个)。(3) 因为本质上,inherited就是调用父类的某个方法,所以和调用本类的某方法相比,并没有特别的不同。“inherited”仅仅就是告诉编译器:我要调用的是父类而不是其他类的方法而已。所以可以在任何地方使用它,例如条件中:静态方法:后代类只能覆盖祖先的同名方法,不能再引用祖先的同名方法;virtual(虚拟方法)和dynamic(动态方法):后代类可以override祖先的同名方法,在override过程的实现里还可以用inherited调用祖先的同名方法,两者的差异在于方法指针的保存,virtual方法使用VMT(Virtual Method Table),也就是说,每一个该类的后代类都拥有整个的VMT,其优点在于速度快,因为类的实例可以直接从VMT中找到该方法的入口,但它也耗用较多的内存;相对的dynamic方法则不使用VMT,如果类的后代没有override该方法,那么需要从它的父类去查找方法的入口,它的优点是少用内存,因为子类只保留它override的方法入口,缺点是速度较慢,尤其在多级继承的时候,可能需要前溯好多层才找到方法的。一般的理解是,如果该方法其后代类基本都需要override的,使用virtual,如果该方法不经常在后代类中被override的,使用dynamic。abstract(抽象方法),抽象方法是指该类只定义了方法的名字,但没有实现方法的部分,方法又其后代类去实现,含有抽象方法的类不能被实例化!