2

setMethodS3パッケージ R.methodsS3 を使用して S3 メソッドを作成しています。2 つのクラスclass Parentclass Child(R.oo オブジェクト) があるとします。 class Childから継承しclass Parentます。両方とも方法がありMyMethod()ます。Child's からスーパークラスMyMethod()(Parent's )を呼び出すにはどうすればよいですか? this$MyMethod() を試しましたが、Child のMyMethodMyMethod()MyMethod()

縮小された例を次に示します。

library( R.oo )

setConstructorS3( "Parent" , definition = 
function()
{
    extend( Object() , "Parent" , .stateVar1 = FALSE )
} )

setMethodS3( "MyMethod" , "Parent" , appendVarArgs = FALSE , definition = 
function( this , someParam , ... )
{
   print( this$.stateVar1 )
   print( someParam  )
} )

setConstructorS3( "Child" , definition = 
function()
{
    extend( Parent() , "Child" )
} )

setMethodS3( "MyMethod" , "Child" , appendVarArgs = FALSE , definition = 
function( this , someParam , ... )
{
   NextMethod( "MyMethod" ) # does not work
   this$MyMethod( someParam ) # also does not work
} )

child = Child()
child$MyMethod()
4

2 に答える 2

0

使いたくない理由がある

MyMethod(child)

それ以外の

child$MyMethod()
于 2011-11-29T02:45:33.310 に答える