私が持っているとしましょう
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.
そして、それはすべてのプロパティを保持します。
前もって感謝します。