I think you may be modeling the relationship wrong. To use your Vehicle example...
Vehicle would be a Base Class - it wouldn't have a "vehicle type" property. Instead, you would have subclasses extend it. The hierarchy could look like this: Vehicle -----.Location -----.NumberOfWheels MotorCycle Extends Vehicle -----.DriveType Truck Extends Vehicle -----.BedLength Car Extends Vehicle -----.SomeSillyProperty By doing this, instances MotorCycle, Truck, and Car all have access to all of Vehicle's methods without using the super keyword. If you're overriding a method in the derived class, then that is an implementation decision and an interface that should not be circumvented by your end user. If they really need to access the overridden method in the Base Class, they should cast the derived class as the base type and then call the method. My .02 -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Nando Sent: Wednesday, October 27, 2004 8:08 PM To: [EMAIL PROTECTED] Subject: RE: [CFCDev] calling a supertype from outside the subtype Ok, so here's the situation. Perhaps my example wasn't the best. I'm passing the subtype into the supertype's DAO. Here's the relevant snippet to give a sense of it. <cfqueryparam cfsqltype="cf_sql_integer" value="#variables.thisContentObj.getSuperIdPage()#" />, <cfqueryparam cfsqltype="cf_sql_varchar" value="#trim(variables.thisContentObj.getStrContentType())#" />, <cfqueryparam cfsqltype="cf_sql_integer" value="#variables.thisContentObj.getIntPosition()#" />, <cfqueryparam cfsqltype="cf_sql_varchar" value="#variables.thisContentObj.getSuperStrLang()#" /> There were 2 values from the supertype that i needed - to get this working for the moment i added getters - getSuperIdPage() and getSuperStrLang() - getStrContentType() and getIntPosition() are both in the supertype only - they work fine as is. As it turns out, I could as well get these values from the subType, as they are shared, duplicated actually for convenience - i just got a little fixed on the idea that they should come from the supertype. So the design flaw may be more in my database structure, as i'm duplicating a few values rather than running a lot of joins in my gateways for performance sake - or it may be in the way i'm passing the subtype into the supertype's DAO - but in context this seems to make a lot of sense to me. Or it may just be my silly idea that the duplicated data should come from the supertype. Or it may be that i should be modelling this relationship using composition. The "supertype" handles 2 things, it defines a position (on the webpage) for the subtype - and it defines exactly "the type" for the rest of the application, as if Vehicle would have a vehicleType attribute that could be Car or Motorcycle or Truck, and it also had a location attribute (call it a garage or a parking place) to allow any type of vehicle to park there. In any case, the only reason i'm drawing this issue out is to see how people approach this. Again, passing the subtype into the supertype's DAO seem like a good move, but now i'm not so sure. -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Nando Sent: Wednesday, October 27, 2004 10:52 PM To: [EMAIL PROTECTED] Subject: RE: [CFCDev] calling a supertype from outside the subtype Really? Well lemme step back and rethink where i'm at then in this before i say anything more then. :) -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of Barney Boisvert Sent: Wednesday, October 27, 2004 10:25 PM To: [EMAIL PROTECTED] Subject: Re: [CFCDev] calling a supertype from outside the subtype You should never want to do this. If you want the behaviour of the superclass, you should be using an instance of the superclass directly. Your workarounds would probably work, but the idea itself blatantly eliminates all the benefits of polymorphism. I'd be very careful about ever using that type of setup without careful consideration of the way the relevant components are related. cheers, barneyb On Wed, 27 Oct 2004 21:11:19 +0200, Nando <[EMAIL PROTECTED]> wrote: > > I don't expect there to be a way to do this, but i just thought i'd check. > > From within a subtype, you can of course use the super keyword to call a > method of the same name in the supertype. > > super.myMethod() > > Is there a way to do this from outside the subtype? For example > > <cfset mySubType = createObject('component','SubType').init() /> > <cfset mySubType.super.myMethod() /> > > This doesn't work, i'm just trying to express the idea clearly. > > My 2 workarounds if there is no direct way to do this would be either to > create a function in the subtype to return the value from the supertype, or > to add another getter of a different name in the supertype. > > ??? > -- Barney Boisvert [EMAIL PROTECTED] 360.319.6145 http://www.barneyb.com/blog/ I currently have 0 GMail invites for the taking ---------------------------------------------------------- You are subscribed to cfcdev. To unsubscribe, send an email to [EMAIL PROTECTED] with the words 'unsubscribe cfcdev' in the message of the email. CFCDev is run by CFCZone (www.cfczone.org) and supported by Mindtool, Corporation (www.mindtool.com). An archive of the CFCDev list is available at www.mail-archive.com/[EMAIL PROTECTED] ---------------------------------------------------------- You are subscribed to cfcdev. To unsubscribe, send an email to [EMAIL PROTECTED] with the words 'unsubscribe cfcdev' in the message of the email. CFCDev is run by CFCZone (www.cfczone.org) and supported by Mindtool, Corporation (www.mindtool.com). An archive of the CFCDev list is available at www.mail-archive.com/[EMAIL PROTECTED] ---------------------------------------------------------- You are subscribed to cfcdev. To unsubscribe, send an email to [EMAIL PROTECTED] with the words 'unsubscribe cfcdev' in the message of the email. CFCDev is run by CFCZone (www.cfczone.org) and supported by Mindtool, Corporation (www.mindtool.com). An archive of the CFCDev list is available at www.mail-archive.com/[EMAIL PROTECTED] ---------------------------------------------------------- You are subscribed to cfcdev. To unsubscribe, send an email to [EMAIL PROTECTED] with the words 'unsubscribe cfcdev' in the message of the email. CFCDev is run by CFCZone (www.cfczone.org) and supported by Mindtool, Corporation (www.mindtool.com). An archive of the CFCDev list is available at www.mail-archive.com/[EMAIL PROTECTED]
