On Tue, May 24, 2005 at 06:27:56AM -0700, Robert Gentleman 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?