接口集合

接口

setClass("Named", contains = "VIRTUAL",
         slots = c(name = "character"))
setGeneric("get_name", function(item) {
  standardGeneric("get_name")
})
# [1] "get_name"
setMethod("get_name", "Named",
          function(item) item@name)

setClass("Flower", contains = "Named")
setClass("City", contains = "Named")
setClass("Star", contains = "Named")

# A list holds objects of any classes
rows <- list(new("Flower", name = "Rose"),
             new("City", name = "Rome"),
             new("Star", name = "Sirius"))
# One generic answers for each of them
row_names <- vapply(rows, get_name, character(1))
all_names <- paste(row_names, collapse = ", ")
# all_names = Rose, Rome, Sirius

cat("all_names =", all_names, "\n")