delphi - Can I inherit a class with the same name and use it freely in other units without a unit prefix? -
suppose want override class defined somewhere, example, let's system.classes.toriginalclass
, , want keep original class name. know have define this:
type toriginalclass = class(system.classes.toriginalclass) ... end;
if wanted implement custom overridden class within same unit declared, don't have problem, long every place want used below declared class.
but suppose want use replacement class in unit. system.classes
extremely common unit, used in every other unit of mine. able use both system.classes
unit unit have created overridden version, let's call myclasses
.
i know in other unit, accomplish including full unit/class in declaration, so:
type tmyclass = class(myclasses.toriginalclass) ... end;
but, pretty defeat whole purpose, because forced include myclasses.
prefix before toriginalclass
. not have worry toriginalclass
declared, , declare this...
type tmyclass = class(toriginalclass) ... end;
...while being sure tmyclass
inherited myclasses.toriginalclass
instead of system.classes.toriginalclass
.
i'm pretty sure consist of order in declare each of these 2 units in uses clause, example, using system.classes
before using myclasses
. supposed possible? should aware of when doing this?
ps - toriginalclass
know isn't real class, i'm using demonstrate any class declared in system.classes
. same should apply original class in unit.
you gave answers.
yes, can derive myclasses.toriginalclass
specifying toriginalclass
, requires myclasses
comes later in uses
list system.classes
, or system.classes
omitted uses
list altogether. there no other way, sorry.
if don't qualify toriginalclass
, compiler use "last" declaration encountered. not automatically use derived one.
sorry.
Comments
Post a Comment