可以说我有
library(R6)
Person <- R6Class("Person",
public = list(
name = NULL,
hair = NULL,
initialize = function(name = NA, hair = NA) {
self$name <- name
self$hair <- hair
self$greet()
},
set_hair = function(val) {
self$hair <- val
},
greet = function() {
cat(paste0("Hello, my name is ", self$name, ".\n"))
}
)
)
PersonWithSurname <- R6Class("PersonWithSurname",
inherit = Person,
public = list(surname = NA,
initialize = function(name, surname, hair) {
super$initialize(name, hair)
self$surname <- surname
})
)
然后在 R 控制台上我说过,
newobject <- Person("Ann", "black")
Hello, my name is Ann.
有没有办法让我现在可以使用上述对象,而无需在继承的对象中重新使用名称或重写代码
例如我不想做
inheritObject <- PersonWithSurname$new("Ann", "Doe", "black")
Hello, my name is Ann.
因为我在重复“安”和“黑”,理想情况下我只想
inheritObject <- PersonWithSurname$new("Doe")
Hello, my name is Ann.
它将保留所有属性。
提前致谢。