我的理解是这样的:
1, 在TObject类中 有Create 构造函数, 从TObject派生的类, 如果override Create, 那么子类将调用本身的Create, 如果子类没有写具体的构造函数,那么 子类的构造将调用父类的构造函数.
2. 在TComponent类中,构造函数Create带有参数, 声明如下:
constructor Create(AOwner: TComponent)
virtual;
这个构造函数返回的是TComponent的对象,它的实现如下:
FComponentStyle := [csInheritable];
if AOwner <> nil then AOwner.InsertComponent(Self);
说明Tcomponent的构造函数必须依赖容器组件, 就是AOwner.
事实上在TComponent的父类TPersistent(持久化类没有构造方法)乃至 TPersistent的父类TObject类 都没有实体的Create. 且, Tobject的构造函数不是虚拟的, 所以就算是从Tobject直接派生一个类,也无法使用Tobject的构造函数, 只是所有类在构造时, 都调用了相同的地址开辟.