Generic classes

Generic types

class Size<T>(private var width: T,
    private var height: T) {

    fun asText(): String {
        return "[$width; $height]"
    }
}

val sizeInt = Size(5, 8)
val textInt = sizeInt.asText()
//textInt is "[5; 8]"

val sizeFloat = Size(3.7, 1.58)
val textFloat = sizeFloat.asText()
//textFloat is "[3.7; 1.58]"

println("textInt is $textInt")
println("textFloat is $textFloat")