Swift Program to Implement Inheritance

1. Introduction

Inheritance is one of the fundamental principles of Object-Oriented Programming (OOP). It allows a new class to inherit properties and methods from an existing class. In this tutorial, we will delve into the concept of inheritance in Swift by building upon our previous example with the Person class.

2. Program Overview

1. We'll start with the Person class as the base or superclass.

2. We'll then create a Student class that will inherit properties and methods from the Person class, making Person the superclass and Student the subclass.

3. The Student class will have an additional property for studentID.

4. We'll also override a method in the Student class to showcase how methods from the superclass can be overridden in a subclass.

3. Code Program

// Define the base class (superclass) - Person
class Person {
    var name: String
    var age: Int

    init(name: String, age: Int) {
        self.name = name
        self.age = age
    }

    func introduce() {
        print("Hello! My name is \(name) and I am \(age) years old.")
    }
}

// Define the subclass - Student which inherits from Person
class Student: Person {
    var studentID: String

    // Initializer for the Student class
    init(name: String, age: Int, studentID: String) {
        self.studentID = studentID
        super.init(name: name, age: age)
    }

    // Overriding the introduce method from the superclass
    override func introduce() {
        super.introduce()
        print("I am a student with ID: \(studentID).")
    }
}

// Creating an instance of the Student class
let alice = Student(name: "Alice", age: 20, studentID: "S12345")
alice.introduce()

Output:

Hello! My name is Alice and I am 20 years old.
I am a student with ID: S12345.

4. Step By Step Explanation

1. We begin with the Person class, which acts as our superclass. It has properties for name and age and a method introduce() that prints out an introduction.

2. We then declare the Student class with the syntax class Student: Person. The colon (:) indicates that Student is inheriting from Person.

3. The Student class introduces an additional property, studentID.

4. In the initializer of the Student class, after setting its own property (studentID), we call the initializer of the superclass with super.init(name: name, age: age).

5. We override the introduce method in the Student class. The override keyword informs Swift that we intend to override a method in the superclass. Inside this method, we first call the introduce method of the superclass using super.introduce(). Then, we add an additional print statement for the student's ID.

6. Finally, we create an instance of the Student class and call the introduce method on it.

Inheritance provides a way to create a new class based on an existing class, enabling code reusability and establishing a natural hierarchy between objects.


Comments