Programmazione orientata agli oggetti con S3 e R6 in R
Richie Cotton
Data Evangelist at DataCamp



thing_factory <- R6Class(
"Thing"
)
child_thing_factory <- R6Class(
"ChildThing",
inherit = thing_factory
)
grand_child_thing_factory <- R6Class(
"GrandChildThing",
inherit = child_thing_factory
)
thing_factory <- R6Class( "Thing",public = list( do_something = function() { message("metodo do_something del parent") } ))
child_thing_factory <- R6Class( "ChildThing", inherit = thing_factory,public = list( do_something = function() { message("metodo do_something del child") } ))
grand_child_thing_factory <- R6Class( "GrandChildThing", inherit = child_thing_factory, public = list( do_something = function() { message("metodo do_something del grand-child")super$do_something()super$super$do_something()} ) )
a_grand_child_thing <- grand_child_thing_factory$new()a_grand_child_thing$do_something()
metodo do_something del grand-childmetodo do_something del childErrore in a_grand_child_thing$do_something(): tentativo di applicare un non-funzione
child_thing_factory <- R6Class( "ChildThing", inherit = thing_factory, public = list( do_something = function() { message("metodo do_something del child") } ),active = list( super_ = function() super ))
grand_child_thing_factory <- R6Class( "GrandChildThing", inherit = child_thing_factory, public = list( do_something = function() { message("metodo do_something del grand-child")super$do_something()super$super_$do_something()} ) )
a_grand_child_thing <- grand_child_thing_factory$new()a_grand_child_thing$do_something()
metodo do_something del grand-child
metodo do_something del child
metodo do_something del parent
super_super_ deve solo restituire superProgrammazione orientata agli oggetti con S3 e R6 in R