Bird
Raised Fist0
Swiftprogramming~5 mins

Overriding methods and properties in Swift - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Overriding methods and properties
O(1)
Understanding Time Complexity

When we override methods or properties in Swift, we want to know how this affects the time it takes for our program to run.

We ask: Does overriding change how long the program takes as it grows?

Scenario Under Consideration

Analyze the time complexity of the following Swift code using method overriding.


class Animal {
    func speak() {
        print("Animal sound")
    }
}

class Dog: Animal {
    override func speak() {
        print("Bark")
    }
}

let pet: Animal = Dog()
pet.speak()
    

This code shows a base class with a method and a subclass that overrides it. We call the method on a subclass instance typed as the base class.

Identify Repeating Operations

Look for repeated actions or calls that affect time.

  • Primary operation: Calling the speak() method once.
  • How many times: Exactly one time in this example.
How Execution Grows With Input

Since the method is called once, the time does not grow with input size.

Input Size (n)Approx. Operations
101
1001
10001

Pattern observation: The time stays the same no matter how many objects or calls you have if you call the method once.

Final Time Complexity

Time Complexity: O(1)

This means the time to run the overridden method call stays constant, no matter the input size.

Common Mistake

[X] Wrong: "Overriding a method makes the program slower as input grows because it adds extra steps."

[OK] Correct: Overriding just changes which code runs, but calling the method still takes the same amount of time each call.

Interview Connect

Understanding that overriding does not increase time complexity helps you explain how object-oriented features work efficiently in real programs.

Self-Check

"What if the overridden method calls a loop inside it? How would the time complexity change?"

Practice

(1/5)
1.

What keyword must you use in Swift to change a method from a parent class in a subclass?

easy
A. override
B. super
C. extend
D. inherit

Solution

  1. Step 1: Understand method overriding in Swift

    Swift requires a special keyword to indicate a method is being changed in a subclass.
  2. Step 2: Identify the correct keyword

    The keyword to override a method or property is override.
  3. Final Answer:

    override -> Option A
  4. Quick Check:

    Keyword to change parent method = override [OK]
Hint: Use 'override' before methods to change them in subclasses [OK]
Common Mistakes:
  • Using 'super' instead of 'override'
  • Forgetting the 'override' keyword
  • Using 'extend' which is not a Swift keyword
2.

Which of the following is the correct syntax to override a method named greet() in Swift?

class Parent {
    func greet() {
        print("Hello")
    }
}

class Child: Parent {
    ??? func greet() {
        print("Hi")
    }
}
easy
A. override
B. super
C. func override
D. override func

Solution

  1. Step 1: Recall Swift override syntax

    In Swift, the keyword override comes before the func keyword.
  2. Step 2: Match the correct syntax

    The correct syntax is override func greet().
  3. Final Answer:

    override func -> Option D
  4. Quick Check:

    Keyword order is 'override func' [OK]
Hint: Write 'override' before 'func' to override methods [OK]
Common Mistakes:
  • Writing 'func override' instead of 'override func'
  • Using 'super' keyword instead of 'override'
  • Omitting 'override' keyword entirely
3.

What will be the output of the following Swift code?

class Animal {
    func sound() {
        print("Some sound")
    }
}

class Dog: Animal {
    override func sound() {
        print("Bark")
    }
}

let pet: Animal = Dog()
pet.sound()
medium
A. Some sound
B. Bark
C. Compile error
D. Runtime error

Solution

  1. Step 1: Understand method overriding and polymorphism

    Even though the variable type is Animal, the actual object is Dog, so overridden method runs.
  2. Step 2: Identify which method is called

    The Dog's overridden sound() method prints "Bark".
  3. Final Answer:

    Bark -> Option B
  4. Quick Check:

    Overridden method runs on subclass instance [OK]
Hint: Overridden methods run on subclass instances even if typed as parent [OK]
Common Mistakes:
  • Thinking parent method runs because variable type is Animal
  • Expecting compile or runtime error
  • Confusing method overriding with overloading
4.

Identify the error in this Swift code that tries to override a property:

class Vehicle {
    var speed: Int = 0
}

class Car: Vehicle {
    var speed: Int = 100
}
medium
A. Missing 'override' keyword before 'var speed' in subclass
B. Cannot override properties in Swift
C. Property types must differ when overriding
D. Superclass property must be 'let' to override

Solution

  1. Step 1: Check property overriding rules

    To override a property in Swift, you must use the override keyword.
  2. Step 2: Identify missing keyword

    The subclass property speed lacks the override keyword, causing an error.
  3. Final Answer:

    Missing 'override' keyword before 'var speed' in subclass -> Option A
  4. Quick Check:

    Override properties need 'override' keyword [OK]
Hint: Always add 'override' before properties you change in subclass [OK]
Common Mistakes:
  • Forgetting 'override' keyword on properties
  • Thinking properties cannot be overridden
  • Changing property type when overriding
5.

Given this Swift code, what will be printed?

class Person {
    var description: String {
        return "Person"
    }
}

class Student: Person {
    override var description: String {
        return super.description + " - Student"
    }
}

let s = Student()
print(s.description)
hard
A. Person
B. Student
C. Person - Student
D. Compile error due to super usage

Solution

  1. Step 1: Understand property overriding with super

    The subclass overrides description and calls super.description to get parent value.
  2. Step 2: Combine parent and subclass strings

    The returned string is "Person" + " - Student" = "Person - Student".
  3. Final Answer:

    Person - Student -> Option C
  4. Quick Check:

    super.property adds parent value [OK]
Hint: Use 'super' to include parent property value when overriding [OK]
Common Mistakes:
  • Expecting only 'Student' without parent text
  • Thinking 'super' causes compile error
  • Not using 'override' keyword on property
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard