[R] inheritence in S4

Martin Morgan mtmorgan at fhcrc.org
Sat Mar 1 15:03:49 CET 2008


Hi Christophe -- 

I don't know whether there's a particularly elegant way. This works

setClass("A", representation(x="numeric"))
setClass("B", representation(y="numeric"))
setClass("C", contains=c("A", "B"))

setMethod("show", "A", function(object) cat("A\n"))
setMethod("show", "B", function(object) cat("B\n"))
setMethod("show", "C", function(object) {
    callGeneric(as(object, "A"))
    callGeneric(as(object, "B"))
    cat("C\n")
})

> new("C")
A
B
C

but obviously involves the developer in making explicit decisions
about method dispatch when there is multiple inheritance.

Martin

cgenolin at u-paris10.fr writes:

> Hi the list
>
> I define a class A (slot a and b), a class C (slot c and d) and a class 
> E that inherit from A and B.
> I define print(A) and print(B). For print(C), I would like to use both 
> of them, but I do not see how...
>
> Thanks for your help...
>
> Christophe
>
> ----------------------------------------------------------------
> Ce message a ete envoye par IMP, grace a l'Universite Paris 10 Nanterre
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

-- 
Martin Morgan
Computational Biology / Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N.
PO Box 19024 Seattle, WA 98109

Location: Arnold Building M2 B169
Phone: (206) 667-2793



More information about the R-help mailing list