这很明确啊,Delphi底下有一个关键字叫做override,意为覆盖,由于你的TSub是TMy的子类,而两个类的constructer的定义完全一样,那么子类的Create就覆盖了父类的Create,而在Object Pascal中,被覆盖了的函数除非在后面的函数中指明了inherited关键字,就不会再被调用。除非你确认是安全的,否则不要省略关键字inherited,而且在constructor里的inhertited最好放在最前面,而destructor里的inhertited最好放在最后面。默认状态下Object Pascal里的类的成员变量全被初始化为0或nil,这就是你得到0的原因