在下面的代码中,我创建了三个类: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))
)