Good job! You've learned how to declare complex objects using a class, create instances of a class, create a subclass, and override a class method. You've learned how to declare a structure, create instances of a structure, and understand the difference between reference and value types and which to use. You've learned how to use enumerations to represent a specific set of values.
You now know how to create and initialize a class, create a subclass from an existing class, create and initialize a structure, understand the difference between classes and structures, and create an enumeration.
In the next chapter, you will study how to specify common traits in classes and structures using protocols, extend the capability of built-in classes using extensions, and handle errors in your programs.