Learn R Programming

ooplah (version 0.2.0)

AbstractClass: Create an abstract R6 Class

Description

Creates an abstract R6 class by placing a thin wrapper around R6::R6Class which causes an error to be thrown if the class is directly constructed instead of one of its descendants.

Arguments

Details

An abstract class is a class that cannot be constructed directly. Instead they are used to define common fields/methods for child classes that inherit from them.

All arguments of R6::R6Class can be used as usual, see full details at R6::R6Class.

References

Gamma, E., Helm, R., Johnson, R., & Vlissides, J. (1996). Design Patterns: Elements of Reusable Software. Addison-Wesley Professional Computing Series (p. 395).

Examples

Run this code
# NOT RUN {
library(R6)

ab <- AbstractClass("abstract", public = list(hello = "Hello World"))
# }
# NOT RUN {
# errors
ab$new()
# }
# NOT RUN {
child <- R6Class("child", inherit = ab)
child$new()$hello

# }

Run the code above in your browser using DataLab