如果我做两个这样的课程:
setClass("SuperClass", slots=c(a="character"), prototype=list(a="A"))
setClass("SubClass", slots=c(b="character"), prototype=list(b="B"), contains="SuperClass")
还有这样的方法:
setGeneric("foobar", function(x) standardGeneric("foobar"))
setMethod("foobar", "SuperClass", function(x) { cat(x@a, "\n", sep="") })
如何为类SubClass
编写一个方法foobar
,该方法可以为SuperClass
调用foobar
方法,然后执行其他特定于SubClass
的计算?
该方法可能如下所示:
setMethod("foobar", "SubClass", function(x) {
# call SuperClass's foobar
cat(x@b, "\n", sep="")
})
如果我这样做:
x <- new("SubClass")
foobar(x)
应该打印出来
"A"
"B"
当然,这是一个可以通过其他方法解决的微不足道的用例,但我认为它抓住了我正在try 的精神.