如何在R S4类中继承一些有效性和原型的插槽?

时间:2015-05-29 05:20:34

标签: r inheritance partial

在下面的代码中,我创建了三个类:A,B和B1。我想做的是按原样制作A,然后通过继承A中的A来制作B,但看起来像B,所以不要继承A中的所有内容。

也就是说我想继承B中A的插槽x及其有效性和原型,但是不应该有A的其他插槽。另外在BI中有一个添加的插槽b,它应该在继承之后来自A的插槽x不在之前。

.A <- setClass(
  Class='A',
  slots=c(x='character', a1='numeric', a2='logical'),
  validity=function(object) if(length(object@x)!=1) return('x should be character of length 1'),
  prototype=list(x='X', a1=c(1, 0.5, 0), a2=c(T, F, T))
)


.B <- setClass(
  Class='B',
  slots=c(x='character', b='integer'),
  validity=function(object) if(length(object@x)!=1) return('x should be character of length 1'),
  prototype=list(x='X', b=c(1L, 7L, 9L))
)


.B1 <- setClass(
  Class='B1',
  contains='A',
  slots=c(b='integer'),
  prototype=list(b=c(1L, 7L, 9L))
)

0 个答案:

没有答案