Bird
Raised Fist0
Kotlinprogramming~5 mins

Overriding methods with override in Kotlin - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the override keyword do in Kotlin?
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
Which keyword marks a method as overridable in Kotlin?
Aopen
Boverride
Cfinal
Dabstract
What happens if you override a method but forget to use override keyword?
AThe method overrides silently
BWarning only
CRuntime error
DCompiler error
Can you override a method marked as final in Kotlin?
ANo
BOnly if subclass is abstract
CYes
DOnly with <code>override</code>
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
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

      1. Step 1: Understand method overriding rules in Kotlin

        In Kotlin, methods are final by default and cannot be overridden unless marked otherwise.
      2. 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.
      3. Final Answer:

        open -> Option A
      4. 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

      1. Step 1: Recall syntax for overriding methods in Kotlin

        To override a method, the subclass method must use the override keyword.
      2. 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.
      3. Final Answer:

        override fun greet() { println("Hello") } -> Option B
      4. 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

      1. 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.
      2. Step 2: Determine output of pet.sound()

        Since Dog overrides sound() to return "Bark", the output will be "Bark".
      3. Final Answer:

        Bark -> Option C
      4. 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

      1. Step 1: Check if parent method allows overriding

        The start() method in Vehicle is not marked open, so it cannot be overridden.
      2. Step 2: Identify the error in subclass

        The Car class tries to override start() but parent method is not open, causing a compilation error.
      3. Final Answer:

        Missing 'open' keyword on Vehicle's start method -> Option D
      4. 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

      1. Step 1: Understand class hierarchy and method overriding

        PhotoPrinter overrides print() from ColorPrinter, which overrides Printer's method.
      2. 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().
      3. Final Answer:

        Printing photo in color -> Option A
      4. 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 unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard