2
참조 클래스를 사용하고 메소드 상속과 관련된 문제로 실행되도록 패키지를 다시 고려 중입니다.참조 클래스 상속 메소드
나는 (상속) A
을 포함하는 B
클래스가 있습니다. 그러나 상속 된 클래스 'B'인스턴스에 대한 메서드 중 하나를 호출 할 수 없습니다. 사실, 그들은 대상에조차 존재하지 않습니다.
다른 클래스의 메서드를 상속하는 참조 클래스는 어떻게 정의합니까? 상속 된 메서드가 일반적이라는 것이 중요합니까?
A <- setRefClass("A", fields=c("f1", "f2"))
B <- setRefClass("B", fields=c("f3"), contains="A")
setGeneric("f", function(.self) standardGeneric("f"))
setMethod(f,
signature = c(.self="A"),
definition = function(.self) {
print("Hello from class A")
}
)
setMethod(f, signature = c(.self="B"),
definition = function(.self) {
print("Hello from class B")
}
)
A$methods(f=f)
a <- A$new()
b <- B$new()
호출 방법 :
> a$f()
[1] "Hello from class A"
> b$f()
Error in envRefInferField(x, what, getClass(class(x)), selfEnv) :
‘f’ is not a valid field or method name for reference class “B”
# Should print "Hello from class B"