menu_book Course Curriculum (Kotlin) expand_more
In variance
Learn in variance in Kotlin through a focused explanation, a dedicated topic-specific example, an engineering boundary, and a mastery check.
in variance is an atomic Kotlin topic inside Null and Type System. The example uses the named construct directly so you can see its syntax, data flow, and observable behavior.
Read the code by locating the exact feature named in variance, then trace the value before and after that feature runs. This lesson is intentionally isolated from neighboring topics: changing identifiers alone would not reproduce the same behavior because the construct itself is different.
Topic-specific example
interface Sink<in T>{fun put(v:T)}; class AnySink:Sink<Any>{override fun put(v:Any){println(v)}}
fun main(){val s:Sink<String>=AnySink();s.put("ok")}
For in variance, test the boundary that makes the feature meaningful: invalid input, an empty value, a missing branch, lifecycle/cleanup, or a type/runtime constraint. Do not infer correctness only from the happy path.