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

Popular posts from this blog

javascript - backbone.js Collection.add() doesn't `construct` (`initialize`) an object -

php - Get uncommon values from two or more arrays -

Adding duplicate array rows in Php -