It tells the compiler that a method in a subclass is replacing a method with the same name and parameters in its superclass.
Click to reveal answer
beginner
Why must you use override explicitly in Kotlin when overriding a method?
To avoid mistakes, Kotlin requires you to clearly say when you are changing a method from a parent class, making your code safer and easier to understand.
Click to reveal answer
beginner
What happens if you try to override a method without using override in Kotlin?
The compiler will give an error because Kotlin wants you to be clear about overriding methods.
Click to reveal answer
intermediate
Can you override a method that is not marked as open in Kotlin?
No, only methods marked with open or abstract methods can be overridden.
Click to reveal answer
beginner
Show a simple example of overriding a method with override in Kotlin.
open class Animal {
open fun sound() = "Some sound"
}
class Dog : Animal() {
override fun sound() = "Bark"
}
fun main() {
val dog = Dog()
println(dog.sound()) // Output: Bark
}
Click to reveal answer
What keyword must you use in Kotlin to override a method from a superclass?
Aopen
Bsuper
Coverride
Dextends
✗ Incorrect
The override keyword is required to override a method in Kotlin.
Which keyword marks a method as overridable in Kotlin?
Aopen
Boverride
Cfinal
Dabstract
✗ Incorrect
Methods must be marked open to be overridden, except abstract methods which are implicitly open.
What happens if you override a method but forget to use override keyword?
AThe method overrides silently
BWarning only
CRuntime error
DCompiler error
✗ Incorrect
Kotlin compiler requires override keyword and will show an error if it is missing.
Can you override a method marked as final in Kotlin?
ANo
BOnly if subclass is abstract
CYes
DOnly with <code>override</code>
✗ Incorrect
Methods marked final cannot be overridden.
In Kotlin, what is the purpose of overriding a method?
ATo add new methods to a class
BTo change the behavior of an inherited method
CTo delete a method from a class
DTo create a new class
✗ Incorrect
Overriding lets you change how a method works in a subclass.
Explain how and why you use the override keyword in Kotlin when working with classes.
Think about how Kotlin makes you clear when changing inherited methods.
You got /4 concepts.
Describe the relationship between open and override keywords in Kotlin.
One keyword allows change, the other confirms change.
You got /4 concepts.
Practice
(1/5)
1. What keyword must be used in Kotlin to allow a method in a parent class to be overridden in a child class?
easy
A. open
B. override
C. final
D. abstract
Solution
Step 1: Understand method overriding rules in Kotlin
In Kotlin, methods are final by default and cannot be overridden unless marked otherwise.
Step 2: Identify the keyword to allow overriding
The open keyword is used in the parent class method to allow it to be overridden in subclasses.
Final Answer:
open -> Option A
Quick Check:
Parent method must be open to override [OK]
Hint: Parent method needs 'open' to allow override [OK]
Common Mistakes:
Using 'override' in parent method instead of 'open'
Forgetting to mark parent method as 'open'
Using 'final' which prevents overriding
2. Which of the following is the correct way to override a method named greet in a Kotlin subclass?
easy
A. fun greet() { println("Hello") }
B. override fun greet() { println("Hello") }
C. open fun greet() { println("Hello") }
D. final fun greet() { println("Hello") }
Solution
Step 1: Recall syntax for overriding methods in Kotlin
To override a method, the subclass method must use the override keyword.
Step 2: Check each option
override fun greet() { println("Hello") } correctly uses override fun greet(). fun greet() { println("Hello") } misses override. open fun greet() { println("Hello") } uses open which is for parent methods. final fun greet() { println("Hello") } uses final which prevents overriding.
Final Answer:
override fun greet() { println("Hello") } -> Option B
Quick Check:
Use override keyword in subclass method [OK]
Hint: Use 'override' keyword before method in subclass [OK]
Common Mistakes:
Omitting 'override' keyword in subclass method
Using 'open' instead of 'override' in subclass
Marking subclass method as 'final' which disallows override
3. What will be the output of the following Kotlin code?
open class Animal {
open fun sound() = "Generic sound"
}
class Dog : Animal() {
override fun sound() = "Bark"
}
fun main() {
val pet: Animal = Dog()
println(pet.sound())
}
medium
A. Generic sound
B. Compilation error
C. Bark
D. Runtime exception
Solution
Step 1: Understand method overriding and polymorphism
The variable pet is of type Animal but holds a Dog object. The overridden sound() method in Dog will be called.
Step 2: Determine output of pet.sound()
Since Dog overrides sound() to return "Bark", the output will be "Bark".
Final Answer:
Bark -> Option C
Quick Check:
Overridden method runs based on actual object type [OK]
Hint: Overridden method runs from actual object type [OK]
Common Mistakes:
Thinking output is from parent class method
Confusing variable type with object type
Expecting compilation or runtime errors
4. Identify the error in the following Kotlin code:
open class Vehicle {
fun start() = "Starting"
}
class Car : Vehicle() {
override fun start() = "Car starting"
}
medium
A. No error, code is correct
B. Missing 'override' keyword in Car's start method
C. Cannot override a method in Kotlin
D. Missing 'open' keyword on Vehicle's start method
Solution
Step 1: Check if parent method allows overriding
The start() method in Vehicle is not marked open, so it cannot be overridden.
Step 2: Identify the error in subclass
The Car class tries to override start() but parent method is not open, causing a compilation error.
Final Answer:
Missing 'open' keyword on Vehicle's start method -> Option D
Quick Check:
Parent method must be 'open' to override [OK]
Hint: Parent method must be 'open' to override it [OK]
Common Mistakes:
Forgetting to mark parent method as 'open'
Trying to override non-open method
Assuming 'override' alone allows overriding
5. Given the following Kotlin classes, what will be the output when main() is run?
open class Printer {
open fun print() = "Printing document"
}
class ColorPrinter : Printer() {
override fun print() = "Printing in color"
}
class PhotoPrinter : ColorPrinter() {
override fun print() = "Printing photo in color"
}
fun main() {
val printer: Printer = PhotoPrinter()
println(printer.print())
}
hard
A. Printing photo in color
B. Printing in color
C. Printing document
D. Compilation error due to multiple overrides
Solution
Step 1: Understand class hierarchy and method overriding
PhotoPrinter overrides print() from ColorPrinter, which overrides Printer's method.
Step 2: Determine which method runs for printer.print()
The variable printer is of type Printer but holds a PhotoPrinter object, so the most derived override runs, which is PhotoPrinter.print().
Final Answer:
Printing photo in color -> Option A
Quick Check:
Most derived override runs based on actual object type [OK]
Hint: Most derived override runs, even with parent type variable [OK]
Common Mistakes:
Thinking parent class method runs instead of child's
Confusing override chain in multi-level inheritance
Expecting compilation error due to multiple overrides
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.