December 2017
Beginner to intermediate
470 pages
12h 29m
English
S3 classes lack a lot of the structure normally found in other languages. Inheritance is implemented informally, and encapsulation is not enforced by the language, as we have seen before.
To implement inheritance, we will create a square_constructor() function that will receive the length of the sides in a and the name of the color. We will then use the rectangle_construtor() and send a for both lengths (making it a square), and will also send the color. Then, we will add the S3Square class, and finally, return the created object:
square_constructor <- function(a, color) { square <- rectangle_constructor(a, a, color) class(square) <- c("S3Square", class(square)) return(square)}
Now, we will create a square and print its classes. ...