Bird
Raised Fist0
Kotlinprogramming~5 mins

Multiple interface implementation in Kotlin - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Multiple interface implementation
O(1)
Understanding Time Complexity

Let's see how the time needed changes when a Kotlin class implements multiple interfaces.

We want to know how the program's work grows as we call methods from these interfaces.

Scenario Under Consideration

Analyze the time complexity of the following code snippet.

interface A {
    fun actionA()
}

interface B {
    fun actionB()
}

class MultiImpl : A, B {
    override fun actionA() {
        println("Action A")
    }
    override fun actionB() {
        println("Action B")
    }
}

fun main() {
    val obj = MultiImpl()
    obj.actionA()
    obj.actionB()
}

This code shows a class implementing two interfaces and calling their methods.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Calling each interface method once.
  • How many times: Each method is called exactly one time.
How Execution Grows With Input

Since each method runs once, the work does not grow with input size.

Input Size (n)Approx. Operations
102 (calls to actionA and actionB)
1002 (still just two calls)
10002 (no increase in calls)

Pattern observation: The number of operations stays the same no matter how big the input is.

Final Time Complexity

Time Complexity: O(1)

This means the time needed stays constant regardless of input size.

Common Mistake

[X] Wrong: "Implementing multiple interfaces makes the program slower as input grows."

[OK] Correct: The number of method calls does not depend on input size here, so speed stays steady.

Interview Connect

Understanding how multiple interfaces affect performance helps you explain design choices clearly and confidently.

Self-Check

"What if each interface method contained a loop over a list of size n? How would the time complexity change?"

Practice

(1/5)
1. What does it mean when a Kotlin class implements multiple interfaces?
easy
A. The class cannot have its own functions if it implements interfaces.
B. The class can only use one interface's functions at a time.
C. The class agrees to provide all functions defined in all those interfaces.
D. The class automatically inherits properties from all interfaces without code.

Solution

  1. Step 1: Understand interface implementation

    Implementing interfaces means the class must provide the functions declared in those interfaces.
  2. Step 2: Check multiple interfaces

    When multiple interfaces are implemented, the class must provide all functions from each interface.
  3. Final Answer:

    The class agrees to provide all functions defined in all those interfaces. -> Option C
  4. Quick Check:

    Multiple interface implementation = implement all interface functions [OK]
Hint: Remember: Implementing means providing all interface functions [OK]
Common Mistakes:
  • Thinking interfaces provide code automatically
  • Believing only one interface's functions are needed
  • Assuming class can't have its own functions
2. Which of the following is the correct syntax to declare a Kotlin class MyClass implementing interfaces InterfaceA and InterfaceB?
easy
A. class MyClass : InterfaceA, InterfaceB {}
B. class MyClass implements InterfaceA, InterfaceB {}
C. class MyClass extends InterfaceA, InterfaceB {}
D. class MyClass : InterfaceA & InterfaceB {}

Solution

  1. Step 1: Recall Kotlin interface syntax

    Kotlin uses a colon (:) to implement interfaces, separated by commas.
  2. Step 2: Check each option

    class MyClass : InterfaceA, InterfaceB {} uses colon and commas correctly. Options B and C use Java-like keywords. class MyClass : InterfaceA & InterfaceB {} uses & which is invalid in Kotlin.
  3. Final Answer:

    class MyClass : InterfaceA, InterfaceB {} -> Option A
  4. Quick Check:

    Use ':' and commas for interfaces [OK]
Hint: Use ':' and commas to list interfaces in Kotlin [OK]
Common Mistakes:
  • Using 'implements' keyword like Java
  • Using 'extends' for interfaces
  • Using '&' to combine interfaces
3. What will be the output of this Kotlin code?
interface A { fun greet() = println("Hello from A") }
interface B { fun greet() = println("Hello from B") }
class C : A, B {
  override fun greet() {
    super<A>.greet()
    super<B>.greet()
  }
}
fun main() {
  val c = C()
  c.greet()
}
medium
A. Hello from A\nHello from B
B. Hello from B\nHello from A
C. Hello from A
D. Compilation error due to greet() conflict

Solution

  1. Step 1: Understand interface default methods

    Both interfaces A and B have greet() with default implementations.
  2. Step 2: Check class C's override

    C overrides greet() and calls both super<A>.greet() and super<B>.greet() in order.
  3. Step 3: Predict output

    First prints "Hello from A", then "Hello from B" on separate lines.
  4. Final Answer:

    Hello from A Hello from B -> Option A
  5. Quick Check:

    Calling both super interface methods prints both greetings [OK]
Hint: Use super<InterfaceName> to call specific interface method [OK]
Common Mistakes:
  • Assuming compilation error due to method conflict
  • Only calling one interface's greet()
  • Mixing order of greetings
4. Identify the error in this Kotlin code where class D implements interfaces X and Y:
interface X { fun foo() }
interface Y { fun bar() }
class D : X, Y {
  override fun foo() { println("foo") }
}
medium
A. Cannot implement two interfaces at once
B. Missing override of bar() from interface Y
C. foo() should not be overridden
D. Class D should be abstract

Solution

  1. Step 1: Check implemented interfaces

    D implements X and Y, so must override all their functions.
  2. Step 2: Verify overridden functions

    D overrides foo() from X but does not override bar() from Y.
  3. Step 3: Identify error

    Missing override of bar() causes compilation error.
  4. Final Answer:

    Missing override of bar() from interface Y -> Option B
  5. Quick Check:

    All interface functions must be overridden [OK]
Hint: Override all interface functions or make class abstract [OK]
Common Mistakes:
  • Forgetting to override all interface methods
  • Thinking multiple interfaces are not allowed
  • Assuming override is optional
5. You have two interfaces:
interface Printer { fun print() }
interface Scanner { fun scan() }

You want a class MultiFunctionDevice that implements both and logs each action. Which is the best way to implement this?
hard
A. class MultiFunctionDevice : Scanner { override fun scan() { println("Scanning...") } }
B. class MultiFunctionDevice : Printer { override fun print() { println("Printing...") } }
C. class MultiFunctionDevice { fun print() { println("Printing...") } fun scan() { println("Scanning...") } }
D. class MultiFunctionDevice : Printer, Scanner { override fun print() { println("Printing...") } override fun scan() { println("Scanning...") } }

Solution

  1. Step 1: Understand requirement

    MultiFunctionDevice must implement both Printer and Scanner interfaces.
  2. Step 2: Check options

    class MultiFunctionDevice : Printer, Scanner { override fun print() { println("Printing...") } override fun scan() { println("Scanning...") } } implements both interfaces and overrides both functions with logging. Options A and B implement only one interface each. class MultiFunctionDevice { fun print() { println("Printing...") } fun scan() { println("Scanning...") } } does not implement interfaces.
  3. Final Answer:

    class MultiFunctionDevice : Printer, Scanner { override fun print() { println("Printing...") } override fun scan() { println("Scanning...") } } -> Option D
  4. Quick Check:

    Implement all interfaces and override all methods [OK]
Hint: Implement all interfaces and override all their methods [OK]
Common Mistakes:
  • Implementing only one interface when multiple are needed
  • Not overriding interface methods
  • Not declaring interfaces in class header
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