这3种定义有什么区别呢?


#1
var x: MutableList<Byte> = mutableListOf<Byte>()
var y: MutableList<Byte> = mutableListOf()
var z: MutableList<Byte> = ArrayList()

#2

前两个没区别,最后一个实例化用子类直接构造


#3

前两种是自动类型检查,你可以去掉类型声明,看区别。

最后一个是多态,你可以看ArrayList的类型声明


#4

前两种是泛型, 可以省略
第三种是子类对象 赋值给 父类引用,是多态的表现


京ICP备16022265号-2 Kotlin China 2017 - 2018