假设我想覆盖某个已经在某处定义的类,例如,假设System.Classes.TOriginalClass
我想保留原来的类名。我知道我必须像这样定义它:
type
TOriginalClass = class(System.Classes.TOriginalClass)
...
end;
如果我想在声明它的同一个单元中实现这个自定义覆盖类,我没有任何问题,只要我希望它使用的每个地方都在我声明这个类的下面。
但是假设我想在另一个单元中使用这个替换类。System.Classes
是一个非常常见的单元,几乎用于我的所有其他单元。我希望能够同时使用该System.Classes
单元以及我创建此覆盖版本的单元,我们称之为MyClasses
.
我知道在任何其他单元中,我可以通过在声明中包含完整的单元/类来实现这一点,如下所示:
type
TMyClass = class(MyClasses.TOriginalClass)
...
end;
但是,这几乎会破坏整个目的,因为我将被迫MyClasses.
在TOriginalClass
. 我想做的是不必担心TOriginalClass
最初声明的地方,并像这样声明......
type
TMyClass = class(TOriginalClass)
...
end;
...同时确保TMyClass
将继承自MyClasses.TOriginalClass
而不是System.Classes.TOriginalClass
.
我很确定这将包括我在 uses 子句中声明这两个单元中的每一个的顺序,例如,在 usingSystem.Classes
之前使用MyClasses
。但这应该是可能的吗?这样做时我应该注意什么?
PS -我知道这不是一个真正的TOriginalClass
类,我用它来演示最初在. 这同样适用于任何单位的任何原始班级。System.Classes