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