Базовый класс

Классы / Наследование

new_shape <- function(line_count) {
  structure(list(line_count = line_count),
            class = "Shape")
}

new_square <- function(side_length) {
  # Start from the parent object
  square <- new_shape(4)
  square$side_length <- side_length
  # The child class goes first
  class(square) <- c("Square", class(square))
  square
}

square <- new_square(5)
# square$line_count = 4
# square$side_length = 5
# class(square) = Square Shape

cat("square$line_count =",
    square$line_count, "\n")
cat("square$side_length =",
    square$side_length, "\n")
cat("class(square) =", class(square), "\n")