On Tue, May 24, 2005 at 06:27:56AM -0700, Robert Gentleman wrote: > > > Duncan Murdoch wrote: > >Ross Boylan wrote: > > > >>On Mon, 2005-05-23 at 14:41 -0700, Ross Boylan wrote: > >>.... > >> > >> > >>>Finally, I'm a bit concerned that one article mentioned that S4 > >>>inheritance, in practice, is used mostly for data, not methods (Thomas > >>>Lumley, R News 4(1), June 2004: p. 36). Am I going down a road I > >>>shouldn't travel? > >>> > >> > >>Hmm, maybe I just found out. If B is an S4 subclass of A (aka extends > >>A), how does B's method foo invoke A's foo? > > > > > >Your question doesn't make sense in S4. In S4, classes don't have > >methods, generics have methods. There's no such thing as "B's method" > >or "A's method". > > > >You might get what you want with foo(as(bObject, "A")) if bObject is an > >instance of class B. > > > >>The question assumes that A's foo was defined as an in place function, > >>so there's no (obvious) named object for it, i.e, > >>setMethod("A", signature(blah="numeric"), function(x) something) > > > > In general it may be best to think of a generic function as a > dispatching mechanism. For S4 methods are associated with a specific > generic function. "specific" generic is a reference to the ability to define generics within the context of a particular package? > A generic knows about all methods that are associated > with it, and about no others. Presumably setMethod does the association. Is the where argument intended to identify which generic method to pick? The fact that there is not a "package" argument to setMethod, as there is to setGeneric, is a little confusing to me.
> Thus in S4, the little tiff over who owns > label goes away - they both do - different packages can define > generic "They" is two different packages? Or is this a reference to my original confusion about class vs generic ownership of a method? > functions for label, or anything else they care to, and users can write > methods for specific generic functions and associate them with a > generic. ... > HTH > Robert ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html