On Tue, May 24, 2005 at 07:07:07AM -0400, 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". Oops, I keep taking the references to "objects" too literally. Thanks. > > 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) There's my confusion: the first argument should be the name of the generic, not the class. > > I don't know what you mean by "in place function", but I hope my answer > helps anyway.
Just for clarification, "in place function" was in contrast to a function defined elsewhere with an explicit name, e.g., fforA<-function(x) something setMethod("foo", signature(blah="numeric"), fforA) In that case I could just refer to fforA directly. (Trying to avoid the S3ish f.A). Is sounds as if the use of as() or callNextMethod() will get me what I want. And the docs seem clear that callNextMethod() returns control (and a value) to the calling function. Thanks to everyone for their help. ______________________________________________ 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