Bird
Raised Fist0
Kotlinprogramming~10 mins

Multiple interface implementation in Kotlin - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to declare a class that implements two interfaces.

Kotlin
interface A {
    fun foo()
}

interface B {
    fun bar()
}

class MyClass : [1] {
    override fun foo() {
        println("foo")
    }
    override fun bar() {
        println("bar")
    }
}
Drag options to blanks, or click blank then click option'
AA & B
BA, B
CA | B
DA B
Attempts:
3 left
💡 Hint
Common Mistakes
Using '&' or '|' instead of ',' to separate interfaces
Not separating interfaces at all
2fill in blank
medium

Complete the code to override the method from interface A.

Kotlin
interface A {
    fun greet(): String
}

class Person : A {
    override fun [1](): String {
        return "Hello"
    }
}
Drag options to blanks, or click blank then click option'
Ahello
Bgreeting
CsayHello
Dgreet
Attempts:
3 left
💡 Hint
Common Mistakes
Using a different method name than declared in the interface
Forgetting to override the method
3fill in blank
hard

Fix the error in the class declaration to implement both interfaces A and B.

Kotlin
interface A {
    fun foo()
}

interface B {
    fun bar()
}

class Sample : [1] {
    override fun foo() {}
    override fun bar() {}
}
Drag options to blanks, or click blank then click option'
AA, B
BA | B
CA & B
DA B
Attempts:
3 left
💡 Hint
Common Mistakes
Using spaces or symbols like '&' or '|' instead of commas
Not separating interfaces
4fill in blank
hard

Fill both blanks to complete the class declaration and method override.

Kotlin
interface X {
    fun action()
}

interface Y {
    fun action()
}

class Combined : [1] {
    override fun [2]() {
        println("Action performed")
    }
}
Drag options to blanks, or click blank then click option'
AX, Y
BX & Y
Caction
Dperform
Attempts:
3 left
💡 Hint
Common Mistakes
Using '&' instead of ',' to separate interfaces
Using wrong method name in override
5fill in blank
hard

Fill all three blanks to implement two interfaces and override their methods correctly.

Kotlin
interface First {
    fun firstMethod()
}

interface Second {
    fun secondMethod()
}

class MultiImpl : [1] {
    override fun [2]() {
        println("First method")
    }
    override fun [3]() {
        println("Second method")
    }
}
Drag options to blanks, or click blank then click option'
AFirst, Second
BfirstMethod
CsecondMethod
DFirst & Second
Attempts:
3 left
💡 Hint
Common Mistakes
Using '&' instead of ',' to separate interfaces
Incorrect method names in overrides

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