0
0
Kotlinprogramming~20 mins

Interface with default implementations in Kotlin - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Interface Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of interface default method call
What is the output of this Kotlin code when calling greet() on an instance of Person?
Kotlin
interface Greeter {
    fun greet() {
        println("Hello from Greeter")
    }
}

class Person : Greeter

fun main() {
    val p = Person()
    p.greet()
}
AHello from Greeter
BCompilation error: greet() must be overridden
CRuntime error: greet() not implemented
DNo output
Attempts:
2 left
💡 Hint
Interfaces in Kotlin can have default method implementations.
Predict Output
intermediate
2:00remaining
Output when overriding default method
What will be printed when greet() is called on Student instance?
Kotlin
interface Greeter {
    fun greet() {
        println("Hello from Greeter")
    }
}

class Student : Greeter {
    override fun greet() {
        println("Hello from Student")
    }
}

fun main() {
    val s = Student()
    s.greet()
}
AHello from Student
BHello from Greeter
CCompilation error: greet() cannot override default
DRuntime error: greet() not found
Attempts:
2 left
💡 Hint
Overriding a default method replaces the original implementation.
🔧 Debug
advanced
2:30remaining
Identify the error in interface default method usage
What error occurs when compiling this Kotlin code?
Kotlin
interface A {
    fun show() {
        println("A show")
    }
}

interface B {
    fun show() {
        println("B show")
    }
}

class C : A, B {
    override fun show() {
        super.show()
    }
}

fun main() {
    val c = C()
    c.show()
}
ANo error, prints 'B show'
BRuntime error: super.show() not found
CNo error, prints 'A show'
DCompilation error: 'super' call is ambiguous between A and B
Attempts:
2 left
💡 Hint
When multiple interfaces have the same default method, you must specify which one to call.