Thanks Martin Well it works except that "as" seems to not like the "initialize" method : the following code (that is the same than yours with some initialize for A B and C) does not compile. It seems that as(c,"A") does not work if we definie a initialize for A...
--- 8< -------------- setClass("A", representation(x="numeric")) setMethod("initialize","A",function(.Object,value)[EMAIL PROTECTED] <- value;return(.Object)}) a <- new("A",4) setClass("B", representation(y="numeric")) setMethod("initialize","B",function(.Object,value)[EMAIL PROTECTED] <- value;return(.Object)}) b <- new("B",5) setClass("C", contains=c("A", "B")) setMethod("initialize","C",function(.Object,valueA, valueB){ [EMAIL PROTECTED] <- valueA [EMAIL PROTECTED] <- valueB return(.Object) }) c <- new("C",valueA=10,valueB=12) 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") }) c --- 8< -------------------- Is there something wrong with the use of 'as' between class and father class? Christophe > 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 > > [EMAIL PROTECTED] 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@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. >> > > ______________________________________________ R-help@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.