Swift as an object-oriented programming language
Swift provides full support for developing applications in an object-oriented way. Prior to Swift 2, I considered Swift to be primarily an object-oriented language in the same way that I considered Java and C# to be object-oriented languages. In this section, we will be designing the vehicle types in an object-oriented way and looking at the advantages and the disadvantages of this design.
Before we look at the code, let's create a very basic class diagram that shows how we would design the vehicle class hierarchy for the object-oriented design. In an object-oriented design, we use class hierarchies to group the similarly related classes. Since Swift is a single inheritance language, a class can only have one super class that it inherits from. The root class in a class hierarchy is the only class without a super class.
I usually start off by doing a very basic diagram that simply shows the classes themselves without much detail. This helps me...