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")