Type Checks and Casts
Learn about type checks and casting in Kotlin.
We'll cover the following...
While writing our code, we may often be inclined to check what type our object is using is
, and cast it using as
. As an example, let’s imagine we’re building a system for superheroes. Each superhero has their own set of methods:
interface Superheroclass Batman : Superhero {fun callRobin() {println("To the Bat-pole, Robin!")}}class Superman : Superhero {fun fly() {println("Up, up and away!")}}
Defining classes Batman and Superman, both implement the Superhero interface
There’s also a function where a superhero tries to invoke their superpower:
fun doCoolStuff(s: Superhero) {if (s is Superman) {(s as Superman).fly()}else if (s is Batman) {(a as Batman).callRobin()}}
Performing superhero specific action based on type
But ...