Re: [R] Re: S4 method inheritance

From: Ross Boylan <>
Date: Wed 25 May 2005 - 06:20:50 EST

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.
> Robert mailing list PLEASE do read the posting guide! Received on Wed May 25 06:28:40 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:32:01 EST