Принуждение суперкласса к подклассу

У меня есть класс, D, который содержит виртуальный класс, A, Я хотел бы заставить кусочки D которые включают A в один из двух подклассов для A, Это возможно с эталонными классами R?

Желаемый вывод должен иметь новый объект класса D который наследует либо B или же Cоба из которых являются подклассами A, Моя мотивация - иметь поля B или же C доступны на верхнем уровне. Я стараюсь не хранить суперкласс A в одном из полей D что является очевидным обходным путем.

## Toy classes
A <- setRefClass("A", fields=c(f1="numeric", f2="numeric"), contains="VIRTUAL")

## B and C are subclass of A
B <- setRefClass("B", fields=c(b_field="numeric"), contains="A")
C <- setRefClass("C", fields=c(c_field="numeric"), contains="A")


## D is a subclass of A as well, but can take either a B or a C
D <- setRefClass("D", fields=c(d_field="numeric"), contains = "A")

setAs("A", "B", def = function(from) {
  # ??? what goes here?
})


d <- D$new()
result <- as(d, "B")

Результат должен иметь поля, уникальные для класса D, все поля из класса Aи поле из класса B,

0 ответов

Другие вопросы по тегам