Actions

Difference between revisions of "Kotlin"

From zen2

Line 35: Line 35:
 
     }
 
     }
 
}
 
}
 +
</pre>
 +
 +
==Lambdas==
 +
<pre>
 +
fun printMessage(message: String){
 +
    println(message)
 +
}
 +
</pre>
 +
Can be expressed as lambda
 +
<pre>
 +
val printMessage = { message: String -> println(message)}
 
</pre>
 
</pre>

Revision as of 23:28, 18 November 2017

Class

Open

By default Kotlin classes are final, meaning no classes can inherit from them. In order to make them not final declare them open

open class Vehicle() {}

Override

To override class functions they must also be declared open

open class Vehicle(val make: String, val model: String) {
    open fun drive() {} 
}

class Car(make: String, model: String, val seats: Int) : Vehicle(make, model) {
    override fun drive() {
    }
}


Super

To use a function from the parent class use super

open class Vehicle() {
    open fun drive() {
        println("original")
    } 
}

class Car() : Vehicle() {
    override fun drive() {
        println("some stuff")
        super.drive()   //will append "original"
    }
}

Lambdas

fun printMessage(message: String){
    println(message)
}

Can be expressed as lambda

val printMessage = { message: String -> println(message)}