Exploring Inheritance Concepts in Swift

A portrait painting style image of a pirate holding an iPhone.

by The Captain

June 8, 2024

Working with Inheritance in Swift

Inheritance is a fundamental concept in object-oriented programming that allows a class to inherit properties and methods from another class. In Swift, inheritance is used to create hierarchical relationships between classes, with the subclass inheriting properties and behaviors from the superclass. To create a subclass in Swift, you can use the ":" syntax followed by the name of the superclass. For example:
class Vehicle {
    var brand: String

    init(brand: String) {
        self.brand = brand

    func displayInfo() {
        print("This is a \(brand) vehicle")

class Car: Vehicle {
    var model: String

    init(brand: String, model: String) {
        self.model = model
        super.init(brand: brand)

    override func displayInfo() {
        print("This is a \(brand) \(model) car")

let myCar = Car(brand: "Toyota", model: "Camry")
In the example above, we have a superclass `Vehicle` with a property `brand` and a method `displayInfo`. We then create a subclass `Car` that inherits from `Vehicle` and adds a property `model`. The subclass `Car` also overrides the `displayInfo` method to provide specific behavior for cars. When creating an instance of `Car`, we pass both the brand and model parameters, and the `displayInfo` method from the `Car` class is called, displaying the specific information for a car. Inheritance in Swift allows you to model real-world relationships between entities, promote code reusability, and facilitate polymorphism. However, it's important to carefully design class hierarchies to avoid deep nesting and maintain a clear and concise class structure. By understanding and effectively using inheritance in Swift, you can create well-organized and efficient object-oriented programs.